我希望将值从两个不同的活动(发票,联系人)传递到相同的活动(AllContacts)。 第一个活动(发票)使用意图并从AllContacts获取数据,即(两者都相同)活动,此处为项目点击,如果价值来自发票,那么它会重新发回发票,其他结果将转到下一个活动。 我做了这件事(前),但它只适用于发票..
class AllContacts
invoiceContact=i.getStringExtra("invoiceContact");//from Invoice
public void onItemClick(AdapterView<?> parent, View v,
int position, long id)
{
super.onItemClick(parent, v, position, id);
Cursor c = (Cursor) mAdapter.getItem(position);
String keyId = c.getString(c
.getColumnIndex(Constants.KEY_ID));
try{
if(!invoiceContact.toString().equals("")){
invoiceContact=null;
Intent extra = new Intent();
extra.putExtra(RESULT_PATH, keyId);
setResult(RESULT_OK, extra);
finish();
}
else if(invoiceContact.toString().equals("")) { //for Contact intent
Intent launchContactRowDetails = new Intent(this,
ContactRowDetails.class);
launchContactRowDetails.putExtra("KeyId", keyId);
updateLastFinishedActivity(Constants.ContactRowDetails);
startActivity(launchContactRowDetails);
}
}
catch(Exception e){
e.printStackTrace();
}
}
答案 0 :(得分:0)
在您应该去其他活动的意图中
Intent extra = new Intent();
你必须指定你必须去的活动
Intent launchContactRowDetails = new Intent(this, ContactRowDetails.class);
就像你在较低的if循环中一样。
答案 1 :(得分:0)
您可以通过以下两项活动启动AllContactsAcitivity
:
startActivityForResult(intent, REQUEST_CODE);
并将结果返回到称为它的任何活动:
Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri");
setResult(Activity.RESULT_OK, result);
finish();
有关详细信息,请参阅此处:Interaction with other apps(不要担心标题,可以在同一个应用程序中使用)