2017-02-17 3 views
0

У меня возникла проблема, когда мне нужно обновить значение переменной адаптера в другом действии и вернуться к первому действию также должно получить это обновленное значение.Значения адаптера не обновляются из другой активности

мой текущий поток как. Я смотрел на BarDetailsActivity и переходя модальный с намерением внутри класса адаптера, как:

Intent barDetailIntent = new Intent(getApplicationContext(), BarDetailActivity.class); 
    barDetailIntent.putExtra("isfav", barsList.get(position)); 
    barDetailIntent.putParcelableArrayListExtra("barlist",barsList); 
    mContext.startActivity(barDetailIntent); 

Тогда на другой вид деятельности я получаю эту модель от намерения и изменение его значения переменных:

gbar = in.getParcelableExtra("isfav"); 
blist= in.getParcelableArrayListExtra("barlist"); 
if (gbar.getmFavourite()) {  
    gbar.setmFavourite(false); 
    } else { 
    gbar.setmFavourite(true); 
    } 

Теперь, возвращаясь к моему основному значению активности для «gbar.setmFavourite», не обновляется onresume MainActivity.

@Override 
protected void onResume() { 
    super.onResume(); 
    if(mAdapter != null){ 
     mAdapter.notifyDataSetChanged(); // here the adapter value is not updated. 
    } 
} 

Пожалуйста, помогите мне в этом.

+0

Когда вы заселяете адаптер своими товарами? – raxelsson

+0

вы уверены, что вы здесь не здесь? – Avi

+0

@Avi да вот почему я проверил адаптер здесь, но gbar.setmFavourite (false); Кажется, здесь не работает. и исходный экземпляр доступен там. –

ответ

1

Используйте Event Bus, чтобы решить эту проблему.

  1. Зарегистрируйте свою первую активность, чтобы прослушать событие и переопределить onEvent.
  2. Пожар stickyIntent с обновленным набором данных от SecondActivity.
  3. В методе onEvent метода FirstActivity notifyDataSetChanged с обновленным набором данных.
Смежные вопросы