如何在其适配器的 onBindViewHolder 内更新 recyclerView?

2024-04-13

我在 recyclerView 中制作了一张卡片列表。当卡持有一段时间后,其在数据库中的相应条目将被删除,因此之后,必须删除该卡。这可以通过调用设置新的更新适配器来完成。但我无法在 onBindViewHolder 中使用 setAdapter 函数,因为我不知道如何获取相同的 recyclerView。请帮忙。

CODE:

public class RecyclerViewAdapterMain extends RecyclerView.Adapter<RecyclerViewAdapterMain.ViewHolder> {

String[] strings;
DBManager dbManager;

public RecyclerViewAdapterMain(String[] arrayList) {
    this.strings = arrayList;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_list,parent,false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    holder.textView.setText(strings[position]);
    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(holder.itemView.getContext(),SecondActivity.class);
            Bundle bundle = new Bundle();
            bundle.putString("list",strings[position]);
            intent.putExtras(bundle);
            holder.itemView.getContext().startActivity(intent);
            //overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);
        }
    });
    holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(final View view) {
            DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    switch (which){
                        case DialogInterface.BUTTON_POSITIVE:
                            dbManager = new DBManager(holder.itemView.getContext(),null,null,1);
                            dbManager.deleteList(strings[position]);
                            String[] strings = dbManager.showLists();
                            RecyclerViewAdapterMain recyclerViewAdapter = new RecyclerViewAdapterMain(strings);
                            //I WANT TO SET UPDATED ADAPTER HERE
                            break;

                        case DialogInterface.BUTTON_NEGATIVE:
                            //No button clicked
                            break;
                    }
                }
            };
            AlertDialog.Builder builder = new AlertDialog.Builder(holder.itemView.getContext());
            builder.setMessage("Are you sure that you want to delete \""+strings[position]+"\"?").setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", dialogClickListener).show();
            return true;
        }
    });


}

@Override
public int getItemCount() {
    return strings.length;
}

public class ViewHolder extends RecyclerView.ViewHolder{
    CardView cardView;
    TextView textView;
    public ViewHolder(View itemView) {
        super(itemView);
        textView = (TextView) itemView.findViewById(R.id.textView);
        cardView = (CardView) itemView.findViewById(R.id.cardView);
    }
}

}


在onBindViewHolder中的Adapter类中写入

photolist.remove(i);
notifyItemRemoved(i);
notifyItemRangeChanged(i, photolist.size());
notifyDataSetChanged();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在其适配器的 onBindViewHolder 内更新 recyclerView? 的相关文章

随机推荐

  • 我可以使用 FileChannel 独立地从不同线程查找文件吗?

    我创建了一个可处理 FLV 文件的 Web 应用程序 该应用程序使用我创建的一个库来解析 flv 文件的内容 该库使用 FileChannel 来查找文件 现在 我从不同的线程中寻找相同的 flv 文件 因此遇到了一种奇怪的行为 这么说吧T
  • 如何获取 WooCommerce 中的活跃订阅者列表?

    我正在尝试获取所有具有活跃订阅的用户的列表 但在我的一生中似乎无法让某些东西发挥作用 如果我查看仪表板中的用户 我会看到所有活跃成员都具有 Abonn 角色 所以我设置了这样的短代码 function custom get members
  • 致命错误:在第 6 行对 C:\wamp\www\ci\application\models\site_model.php 中的非对象调用成员函数 get()

    你好 我刚刚观看了 Nettuts 上的第一个 第一天的截屏视频 CodeIgniter from scrap 我已经遇到了一个我不明白的错误 这是一个屏幕截图http i39 tinypic com 14mtc0n jpg http i3
  • Google 日历 PHP API 不发送邀请电子邮件

    我已使用 PHP 和服务帐户成功与 Google 日历集成 我可以做什么 更新日历事件 将与会者添加到日历活动 我不能做什么 添加新与会者时发送邀请电子邮件 这是迄今为止我用来完成所有事情的完整代码 putenv GOOGLE APPLIC
  • Django 多个数据库 - 一个并不总是可用

    我正在开发一个 Django 应用程序 它将使用多个数据库后端 我想在运行 django 应用程序的机器上放置一个 sqlite 数据库 并同步到远程 mysql 数据库 棘手的部分是 运行应用程序的机器并不总是有互联网连接 因此 mysq
  • 根据用户选择的选项设置单选按钮的值

    根据用户对三个下拉列表的选择 我想从下面的对象中设置给定单选按钮的值 例如 如果我从第一个选择标签中选择 Drop Down 1 1 并将其他两个留空 则 radio button 4 的值不会为 r 5000 R 如果我选择 下拉 1 1
  • 使用嵌套字典Python的自定义类

    当使用相同的键在嵌套字典中添加值时遇到问题 并且该值始终显示相同的值 事实是 我想更新值事件 键是相同的 该算法是人工鱼群算法的基础 example gt gt fish template 0 weight 3 1 visual 2 ste
  • Boost read_json 和 C++11

    我正在尝试使用 Boost 的 property tree 解析器和 C 11 代码解析 JSON 我的系统是带有 gcc 4 7 2 和 Boost 1 49 的 Debian Wheezy 我尝试了以下代码基于使用 boost 序列化和
  • 数组映射返回未定义的数组,何时应返回对象数组

    为什么 a b c map x gt letter x 返回一个未定义的数组 and a b c map x gt letter x 0 正确返回对象数组 Because 您可以使用大括号作为块语句 https developer mozi
  • 在数据框中创建一个新列:组中的索引(组之间不唯一)

    我有一个包含两列的数据框 第一列包含每个人所属的组 第二列包含个人的 ID 见下文 df lt data frame group c G1 G1 G1 G1 G2 G2 G2 G2 indiv c indiv1 indiv1 indiv2
  • android 如何监听自定义变量?

    我看过这个线程 如何实现监听器 https stackoverflow com questions 5941960 android how to implement listener关于实现侦听器 它实际上非常简单 但我不知道它到底是如何完
  • 检索并使用 Microsoft 或 Mozilla 的 Root-CA 列表并在 Java 中使用它?

    OpenJDK for Windows 中包含的根 CA 证书列表非常令人印象深刻 但有很多根 CA 证书受到 Firefox 等常见浏览器的信任 但不受 Java 信任 Both 微软 https support microsoft co
  • ASP.NET MVC3 和服务器端验证

    假设用户禁用了 javascript 因此客户端验证在 MVC3 中不起作用 实现服务器端验证的最佳方法是什么 以便当用户尝试以不适当的方式处理数据时仍然显示验证消息 Thanks EDIT 显然发生这种情况是因为我使用 EF 生成的模型
  • jquery fancybox 触发点击仅工作一次

    我从绑定到表行的单击事件调用 jquery fancybox 链接 该操作第一次工作正常 但是 如果我关闭 fancybox 并再次单击任何行 绑定到该行的匿名函数仍然会触发 但 fancybox 不会启动 这是我正在使用的 JavaScr
  • 在 CruiseControl.NET 构建中使用“devenv”和“msbuild”有什么区别?

    CruiseControl NET 中使用 标记和 标记的主要区别是什么 我知道它们调用不同的可执行文件 但有时我会得到不同的结果 就编译时的通过 失败而言 我想知道为什么两个构建命令之间存在差异 基本上 devenv Visual Stu
  • hashbang 行上的 Eclipse javascript 语法错误

    当我将一些现有的 Node js 代码导入 Eclipse 工作区时 它会抱怨 令牌 无效字符 出现语法错误 请删除此令牌 on the usr bin env node哈希邦线 我怎样才能告诉 Eclipse 忽略这个错误 对于 Node
  • Android - 如何更新通知号码

    您好 我想在单个视图中显示所有通知 并且想要更新状态栏中的通知数量 它更新所有信息 但显示数量始终为 1 请告诉我如何解决它 Override public void onReceive Context context Intent int
  • VHDL 中的 #define 等价物是什么

    VHDL 中的 define ifdef 和 ifndef 相当于什么 我想使用泛型作为 define 并根据它们更改设计 举一个简单的例子 定义一个字符串泛型并用它来确定时钟是单时钟还是差分时钟 generic something boo
  • 如何将 NSData 转换为 NSString? [复制]

    这个问题在这里已经有答案了 可能的重复 将 UTF 8 编码的 NSData 转换为 NSString https stackoverflow com questions 2467844 convert utf 8 encoded nsda
  • 如何在其适配器的 onBindViewHolder 内更新 recyclerView?

    我在 recyclerView 中制作了一张卡片列表 当卡持有一段时间后 其在数据库中的相应条目将被删除 因此之后 必须删除该卡 这可以通过调用设置新的更新适配器来完成 但我无法在 onBindViewHolder 中使用 setAdapt