我有一个ArrayList,它有Person类型的对象。人员类具有字段名称,地址1,地址2,城市,州,邮政编码和国家。我希望能够编辑特定的人,然后更新更改,以便显示人员的ListAdapter显示更新的数据。此ListView包含在RecipientActivity(活动A)
中在自定义适配器中,我使用TextView的onClick事件中的intent启动Activity RecipientAddressActivity(Activity B):
holder.txtRecName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent rec_Intent = new Intent(context,
RecipientAddressActivity.class);
rec_Intent.putExtra("Current_Recipient",
recipientArray.get(index));
rec_Intent.putExtra("RecipientIndex",index);
context.startActivity(rec_Intent);
}
});
在活动B中,我在onCreate()事件中获取Current_Recipient和索引,如下所示:
current_rec = (Person) getIntent().getSerializableExtra(
"Current_Recipient");
Recipient_Index = getIntent().getIntExtra("RecipientIndex", 151);
在同一个活动中,我有一个“保存”按钮,在其Onclick上我创建一个Person对象,可以是新人或正在编辑的老人。
按钮保存的onClick()事件
{
Intent Recipient_info = new Intent();
Person recipient = new Person(edt_rec_name.getText().toString(),
edt_rec_addr1.getText().toString(),edt_rec_addr2.getText().toString(),
edt_rec_city.getText().toString(), edt_rec_state.getText().toString(),
edt_rec_pcode.getText().toString(), edt_rec_country.getText().toString());
Recipient_info.putExtra("Person", recipient);
Recipient_info.putExtra("RecipientIndex", Recipient_Index);
setResult(RESULT_OK, Recipient_info);
finish();
}
问题是有两种方法可以启动Activity B.我不知道在使用ListView的适配器启动Actvity B时,在何处或如何捕获结果。
请尽快帮助我。如果需要更多代码或解释,请告诉我。
感谢。
答案 0 :(得分:1)
我注意到你的代码:
您没有以activityForResult
开始活动。
检查并立即尝试!如果你仍然遇到这个问题而不是这里有一些链接,这对你的问题很有用:
calling onActivityResult from CustomArray adapter
onActivityResult in not called in the class extended from ArrayAdapter
How to add item in Custom listView in onActivityResult method?