2017-02-17 74 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」沒有更新onmainume 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. 使用SecondActivity中已更新的數據集激發stickyIntent。
  3. 在FirstActivity調用notifyDataSetChanged 的onEvent方法中更新數據集。