适配器值不会从其他活动更新

时间:2017-02-17 07:45:08

标签: java android android-adapter getter-setter

我遇到了一个问题,我需要在另一个活动中更新适配器变量的值,并且返回第一个活动也应该获得更新的值。

我目前的流程是这样的。我正在盯着BarDetailsActivity并从适配器类中传递带有intent的模态,如:

  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.
    }
}

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

使用Event Bus来解决问题。

  1. 注册您的第一个活动以收听事件并覆盖 onEvent方法。
  2. 使用SecondActivity中的更新数据集触发stickyIntent。
  3. 在FirstActivity的onEvent方法中调用notifyDataSetChanged 使用更新的数据集。