2015-11-07 3 views
0

У меня есть MainActivity что есть список хранение моих объектов:Переход назад к предыдущей деятельности, передающие данные вместе

private List<House> houses; 

Когда пользователь нажимает на кнопку ADD, она вызывает другую деятельность:

addButton.setOnClickListener(new Button.OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     Intent intent = new Intent(MainActivity.this, HouseDetails.class); 
     startActivity(intent); 
    } 
}; 

Это новое действие предоставляет экран, на котором пользователь заполняет данные для нового объекта. Здесь у него есть опции: отменить (вернуться и ничего не создано) или принять (вернуться с вновь созданным объектом).

Как вернуться к MainActivity с вновь созданным объектом? Должен ли я снова запустить MainActicity или есть способ вернуться к первоначальному основному действию, которое выполнялось ранее, и объединить новые данные?

ответ

2
//Global variable 
private string request_code = 1000; 

и начало новой деятельности, позвонив в MainActivity

Intent intent = new Intent(MainActivity.this, HouseDetails.class); 
startActivityForResult(intent , request_code); 

и переопределить метод onActivityResult

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode == request_code){ 
      if(resultCode == RESULT_OK){ 
       //put your stuff here 
      }else if(resultCode == RESULT_CANCEL){ 
       //put your stuff here 
      } 
     } 
    } 

в HouseDetails метод деятельности переопределение покрытие деятельности

@Override 
    public void finish() { 
     Intent data = new Intent(); 
     Bundle extra = new Bundle(); 
     //put your data in bundle 
     data.putExtras(extra); 
     if(cancel){ 
      setResult(RESULT_CANCEL , data); 
     }else{ 
       setResult(RESULT_OK,data); 
     } 
     super.finish(); 
    } 
1

Ваш список должен быть статическим, и вы могли бы добавить новый объект из своего второго действия e. г.

MainActivity.houses.add(House house); 
Смежные вопросы