У меня есть ArrayList, в котором есть объекты типа Person. Класс Person имеет поля name, address1, address2, city, state, postcode и country. Я хочу иметь возможность редактировать конкретного человека, а затем обновлять изменения таким образом, чтобы ListAdapter, который отображает людей, отображал обновленные данные. Этот ListView содержится в RecipientActivity (Activity A)
В пользовательском адаптере я запускаю Activity RecipientAddressActivity (Activity B), используя намерение в событии TextView onClick:
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 я получаю Current_Recipient и индекс в событии onCreate() следующим образом:
current_rec = (Person) getIntent().getSerializableExtra(
"Current_Recipient");
Recipient_Index = getIntent().getIntExtra("RecipientIndex", 151);
В том же действии у меня есть кнопка «Сохранить», и при ее нажатии я создаю объект 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();
}
Проблема в том, что есть 2 способа запуска действия B. Я не знаю, где и как получить результат, когда действие B запускается с помощью адаптера ListView.
Пожалуйста, помогите мне как можно скорее. Пожалуйста, дайте мне знать, если требуется дополнительный код или объяснение.
Спасибо.