2017-02-17 4 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"は、MainActivityのonresumeで更新されません。

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

私にこれを手伝ってください。

+0

アダプターにあなたのアイテムを入力するのはいつですか? – raxelsson

+0

あなたは確かです、アダプターはここでヌルですか? – Avi

+0

@Aviはいthatsなぜここでアダプタをチェックしたのですか?gbar.setmFavourite(false); does'ntはここで働くようです。元のインスタンスはそこで使用できます。 –

答えて

1

Event Busを使用して問題を処理してください。

  1. 最初のアクティビティを登録してイベントをリッスンし、 onEventメソッドをオーバーライドします。
  2. SecondActivityの更新データセットでstickyIntentを起動します。
  3. FirstActivity呼び出しのonEventメソッドでは、更新されたデータセットのnotifyDataSetChanged があります。
関連する問題