我正在使用Recyclerview适配器来填充Recyclerview。从SQLite填充Recyclerview后,如果用户想要打开recyclerview项,则需要单击该项并且适配器打开相关活动。这是一张可以帮助您轻松理解的图片。
当活动打开时,用户可以在删除数据后通过单击删除按钮从SQLite中删除该帖子,recyclelerview应该动态更新数据。
答案 0 :(得分:1)
您还可以使用 StartActivityForResult ,并在第一个活动中使用第二个活动的结果删除项目。
我的意思是:
在FirstActivity中:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在SecondActivity中,当您按下删除按钮时:
Intent returnIntent = new Intent();
returnIntent.putExtra("delete", true);
returnIntent.putExtra("position", position);
setResult(Activity.RESULT_OK, returnIntent);
finish();
最后,FirstActivity处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
if (data.getBooleanExtra("delete") {
// get position and delete item from list and refresh
int position = data.getIntegerExtra("position");
}
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
https://stackoverflow.com/a/10407371/1820599
<强>编辑:强>
在适配器构造函数中获取活动的上下文:
FirstActivity listener;
public myAdapter(Context context, List<String> items) {
super(context, R.layout.row_edition, items);
this.listener = ((FirstActivity) context);
this.items = items;
}
然后,在适配器内部,当你按下项目时,调用活动来启动第二个:
listener.startSecondActivity(int position, parameters you need to use);
最后,在你的FirstActivity中
startSecondActivity(int position, parameters you need to use) {
// whatever you have to do
Intent i = new Intent(this, SecondActivity.class);
// push position inside intent and whatever you need
startActivityForResult(i, 1);
}
流程是:
答案 1 :(得分:1)
如果您在单击以显示公司详细信息并显示公司详细信息时显示了recyclelerview中的公司列表,那么您应该发现该项目会消失,这是我的代码所做的
protected void onResume()
{
super.onResume();
Log.i("TAG", "resume");
if(yourlist.size() > 0)
{
yourlist.clear();
yourlist.addAll(where your data come from
ex:databaseHelper.GetOrganization());
youradapter.notifyDataSetChanged();
}
}
答案 2 :(得分:0)
您必须在活动中实施一个监听器,它告诉您的回收站视图项目已更改。我假设您已经为回收站视图实现了自己的onItemClickListener,因此您可以轻松地从回收站视图数据集中删除项目。有关详细信息,请发布您的代码。
这个监听器进入你的类填充Recycler视图。
public interface DeletedListener {
void deleted(int position);
}
使您的活动实现此侦听器,并发送必须删除的位置。
public void setListener(DeletedListener listener) {
this.listener = listener;
}
DeletedListener listener;
从您的活动中调用setListener方法,并从适配器调用deleted方法。