android – 如何在从recyclerview适配器打开的活动被删除时更新recyclerview

我正在使用Recyclerview适配器来填充Recyclerview.从SQLite填充Recyclerview后,如果用户想要打开recyclerview项,则需要单击该项并且适配器打开相关活动.这是一张可以帮助您轻松理解的图片.

《android – 如何在从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适配器

点赞