我的活动类,我将一些结果传递给另一个活动,以便它可以执行一些不同的操作
@Override
public void onClick(View view) {
Intent i = new Intent(OrderDetails.this, AppointmentSchedulingActivity.class);
i.putExtra("JobID", jobid);
i.putExtra("Resultt","1");
startActivityForResult(i,1);
}
我的第二个活动是使用此onActivityResult代码在onActivity Result方法中获得上述活动的响应,但此onActivityResult
方法未触发
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1)
{
if (resultCode == RESULT_OK) {
try {
continuee.setText("Reschedule");
continuee.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ListofAddressesDataModel selectedItem = ((ListofAddressesAdapter) add.getAdapter()).getSelectedItem();
String customeraddressid = selectedItem.getCustaddid();
SharedPreferences.Editor editor = getSharedPreferences(AppConstants.VERIFICATION, MODE_PRIVATE).edit();
editor.putString(AppConstants.SELECTEDCUSTOMERADDRESSID, customeraddressid);
new reschedulejob().execute(jobid, customeraddressid, dateTxt, timeTxt);
}
});
}
catch (Exception e)
{
}
}
}
else {
continuee.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(AppointmentSchedulingActivity.this, OrderSummary1.class);
ListofAddressesDataModel selectedItem = ((ListofAddressesAdapter) add.getAdapter()).getSelectedItem();
String name = selectedItem.getName();
String phone = selectedItem.getPhone();
String address = selectedItem.getFulladdress();
String customeraddressid = selectedItem.getCustaddid();
SharedPreferences.Editor editor = getSharedPreferences(AppConstants.VERIFICATION, MODE_PRIVATE).edit();
editor.putString(AppConstants.SELECTEDCUSTOMERNAME, name);
editor.putString(AppConstants.SELECTEDCUSTOMERPHONE, phone);
editor.putString(AppConstants.SELECTEDCUSTOMERADDRESS, address);
editor.putString(AppConstants.SELECTEDCUSTOMERADDRESSID, customeraddressid);
editor.commit();
startActivity(intent);
}
});
}
super.onActivityResult(requestCode, resultCode, data);
}
所以我想知道为什么我的onActivity结果没有被解雇。我想在继续按钮上执行两个不同的操作。我应该把它放在onResume方法中吗?我只想在这里执行两个不同的动作
答案 0 :(得分:1)
在给定的代码中,您从第一堂课开始调用startActivityForResult()
,而在第二堂课中有onActivityResult()
。
这就是你所写的,所以我假设有两种不同的活动来实现上述方法。
请记住,startActivityForResult()
和onActivityResult()
这两种方法必须属于同一活动。
如果您不知道如何使用startActivityForResult(),请查看本教程here
希望这会有所帮助:)
答案 1 :(得分:0)
startActivityForResult(..)用于将数据返回给调用者活动。
如果你想传递数据,那么使用startActivity(intent)并在第二个活动onCreate()方法上获取它。
第一项活动
@Override
public void onClick(View view) {
Intent i = new Intent(OrderDetails.this, AppointmentSchedulingActivity.class);
i.putExtra("JobID", jobid);
i.putExtra("Resultt","1");
startActivity(i);
}
关于第二项活动
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
//extract the intent
Intent intent = getIntent();
String id = intent.getStringExtra("JobID");
String result = intent.getStringExtra("Resultt");
}
答案 2 :(得分:0)
当您在代码中派生时,在第一个活动中您为startActivityForResult编写了代码,而在第二个活动中,您尝试获取第二个活动操作的结果回调。
首先,我想告诉你一件事,如果你想使用startActivityForResult,那么你的startActivityForResult代码和onActivityResult代码应该在同一个活动中,这意味着你首先要尝试开始第二个活动。 有关详情,请查看:startActivityForResult
第二件事是你试图在第二个活动中的onActivityResult回调中做一些点击事件(比如:continuee.setOnClickListener),我认为这个继续视图与你的第二个活动有关。那么你想在这里实现什么?