我正在使用Recyclerview适配器来填充Recyclerview.从SQLite填充Recyclerview后,如果用户想要打开recyclerview项,则需要单击该项并且适配器打开相关活动.这是一张可以帮助您轻松理解的图片.
当活动打开时,用户可以通过在删除数据后单击删除按钮从SQLite中删除该帖子,recyclelerview应该动态更新数据.
最佳答案 您还可以使用StartActivityForResult并将第二个活动的结果用于第一个中的删除项.
我的意思是:
> FirstActivity启动SecondActivity等待结果
> SecondActivity将结果发送回FirstActivity.只有你删除
这个项目.
>现在,FirstActivity删除并刷新列表.
在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;
}
然后,在适配器内部,当您按下项目时,调用活动以启动seconde:
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);
}
流程是:
>推送项目
>使用FirstActivityListener调用SecondActivity
>在SecondActivity中删除和传回结果
>在FirstActivity中使用辅助方法从适配器中删除项目
内部que适配器