我有一个有两个Intents
的应用。首先显示一些对象,第二个是最喜欢的对象,它们是来自第一个Intent
的对象,但标记为“最喜欢的”#39;当我在第二个Intent
- 最喜欢的时候,我希望无标记的对象成为常规的'对象然后当我点击back button
刷新对象列表并显示启用按钮时添加到收藏夹'。但它不起作用:
收藏intent
:
public class FavWashActivity extends Activity{
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
private MyAdapter myAdapter;
private List<WashLocation> washLocations;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.favorite_wash);
mRecyclerView = (RecyclerView) findViewById(R.id.fav_recycler_view);
DataBaseHelper dataBaseHelper = new DataBaseHelper(getApplicationContext());
washLocations = dataBaseHelper.getFavouriteWashLocation();
mAdapter = new MyAdapterFavWash(washLocations, this);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
myAdapter = new MyAdapter(null, this, null);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
onBackPressed();
}
return false;
}
@Override
public void onBackPressed() {
super.onBackPressed();
myAdapter.notifyDataSetChanged();
}
}
需要刷新的adapter
:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<WashLocation> washLocations;
private LayoutInflater layoutInflater;
private DataBaseHelper dataBaseHelper;
private Map<String, Integer> queueToWash;
public MyAdapter(List<WashLocation> washLocations, Context context, Map<String, Integer> queueToWash) {
layoutInflater = LayoutInflater.from(context);
this.washLocations = washLocations;
dataBaseHelper = new DataBaseHelper(context);
this.queueToWash = queueToWash;
}
答案 0 :(得分:0)
尝试这样的事情
@Override
public void onBackPressed() {
super.onBackPressed();
washLocations.remove(1);
//need to change in arraylist than only you can notify your adapter.
//add some data in array list or remove data.than try to notify it.
myAdapter.notifyDataSetChanged();
}
希望这对你有帮助..如果需要任何帮助,你可以提出要求。