在更新recyclerview时获取indexoutofBoundSexception错误

发布于 2025-02-01 02:17:33 字数 1835 浏览 3 评论 0原文

嗨,我想删除数据库中的行,该行在回收器视图中显示,当我单击“删除”按钮时,数据已删除,但我的recyclerview不会更新,并且我的应用程序崩溃了。

这是我的删除方法

public int deleteNote(int id) {

        SQLiteDatabase db = getWritableDatabase();
        return db.delete(TABLE_NAME,"id=?",new String[] {String.valueOf(id)});

    }

,这是我的RV适配器中的Popop菜单,当我单击删除数据库行时,我的应用程序崩溃了,

holder.more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                PopupMenu popupMenu = new PopupMenu(c,holder.more);
                popupMenu.inflate(R.menu.more_menu);
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {

                        switch (item.getItemId()){

                            case R.id.delete:



                                Note note = notes.get(position);
                                NoteDBAdapter noteDBAdapter = new NoteDBAdapter(c);
                                int result = noteDBAdapter.deleteNote(notes.get(position).getId());
                                if (result > 0){
                                    Toast.makeText(c, "success", Toast.LENGTH_SHORT).show();
                                    notes.remove(notes.get(position));
                                    notifyDataSetChanged();
                                }else {
                                    Toast.makeText(c, "failed", Toast.LENGTH_SHORT).show();
                                }

                            default:
                                return false;
                        }

                    }
                });

                popupMenu.show();
            }
        });

我会感谢任何提示...(:

Hi I want to delete row in my database which is being displayed in a Recycler View, While I click the delete button the data is deleted but my recyclerView will not update and my app crashes.

here is my delete method

public int deleteNote(int id) {

        SQLiteDatabase db = getWritableDatabase();
        return db.delete(TABLE_NAME,"id=?",new String[] {String.valueOf(id)});

    }

and here is my popop menu in RV Adapter which when i click on delete the row of database is deleted but my app crashes

holder.more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                PopupMenu popupMenu = new PopupMenu(c,holder.more);
                popupMenu.inflate(R.menu.more_menu);
                popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {

                        switch (item.getItemId()){

                            case R.id.delete:



                                Note note = notes.get(position);
                                NoteDBAdapter noteDBAdapter = new NoteDBAdapter(c);
                                int result = noteDBAdapter.deleteNote(notes.get(position).getId());
                                if (result > 0){
                                    Toast.makeText(c, "success", Toast.LENGTH_SHORT).show();
                                    notes.remove(notes.get(position));
                                    notifyDataSetChanged();
                                }else {
                                    Toast.makeText(c, "failed", Toast.LENGTH_SHORT).show();
                                }

                            default:
                                return false;
                        }

                    }
                });

                popupMenu.show();
            }
        });

i would appreciate any tip...(:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥醉 2025-02-08 02:17:33

当您尝试从数组超出其大小的数组中选择一个值时,就会发生indexoutofBoundSexception。

检查阵列或任何此类内容,例如从何处存储数据并获取数据。

IndexOutOfBoundsException occurs when you try to select a value from an array that goes beyond its size.

Check the array or any such stuff like from where you are storing data and getting it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文