2015-04-25 5 views
0

У меня есть MainActivity, и я использую startActivityForResult, чтобы открыть другое действие, в котором я работаю с некоторыми данными в списке. Я также могу редактировать эти данные и удалять их. После нажатия кнопки «Назад» на моем телефоне я хочу отправить этот отредактированный список обратно в основное действие. Где я должен создать это намерение с этим новым списком? Есть ли способ, который я могу переопределить для этой кнопки возврата?Как отправить данные обратно в MainActivity

+0

Да. Переопределите onBackPressed() в своем втором действии и начните намерение, которое переходит к основному действию с дополнительными функциями. – kha

+0

Да, это то, что я искал. Я, вероятно, пропустил это, когда искал методы переопределения! Спасибо! – previ

ответ

0

Вы можете переопределить onBackPressed и передать данные обратно к исходному Activity. Но для того, чтобы передать это так, то список должен реализовать Parcelable

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    Intent intent = new Intent(); 
    Bundle data = new Bundle(); 
    data.putParcelableArrayList("someKey", listThatImplementsParcelable); 
    intent.putExtras(data); 
    setResult(RESULT_OK, intent); 
    finish(); 
} 
3

В вашем MainActivity вызвать AnotherActivity с помощью startActivityForResult() метод:

Intent i = new Intent(this, AnotherActivity.class); 
startActivityForResult(i, 1); 

Если вам нужно, в вашем AnotherActivity установить данные который вы хотите вернуть обратно в MainActivity.

Intent returnIntent = new Intent(); 
returnIntent.putExtra("mData", object); 
setResult(RESULT_OK, returnIntent); 
finish(); 

В MainActivity вы должны Override/Реализуйте метод onActivityResult() следующим образом:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 
     if(resultCode == RESULT_OK){ 
      String result=data.getStringExtra("mData"); 
     } 
     if (resultCode == RESULT_CANCELED) { 
      // do something if there is no result 
     } 
    } 
} 

Смотрите еще:

Смежные вопросы