Android RecyclerView适配器位置为-1

杰瑞德(Jared)

我正在制作一个待办事项列表应用程序,如果我单击a中RecyclerView一个项目,Dialog将会弹出一个菜单,可让您编辑该任务的名称。在某些任务上,当我接受更改时,应用程序将崩溃,并且会弹出此堆栈跟踪。

10-02 15:10:34.801 9701-9701/com.gigstudios.todolist E/AndroidRuntime: FATAL EXCEPTION: main
                                                                       Process: com.gigstudios.todolist, PID: 9701
                                                                       java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
                                                                           at java.util.ArrayList.get(ArrayList.java:310)
                                                                           at com.gigstudios.todolist.RecyclerListAdapter$3$1.onInput(RecyclerListAdapter.java:166)
                                                                           at com.afollestad.materialdialogs.MaterialDialog.onClick(MaterialDialog.java:370)
                                                                           at android.view.View.performClick(View.java:5201)
                                                                           at android.view.View$PerformClick.run(View.java:21163)
                                                                           at android.os.Handler.handleCallback(Handler.java:746)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

这是崩溃的行,因为getAdapterPostion返回-1:

taskList.getTasks().get(holder.getAdapterPosition()).setTitle(input.toString().trim());

我似乎找不到任何模式导致项目崩溃以及为什么其他项目没有崩溃。这里是的完整代码onBindViewHolder

 @Override
        public void onBindViewHolder(final ItemViewHolder holder, final int position) {

            //other code




            //edit task
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    new MaterialDialog.Builder(context)
                            .title(R.string.edit_task)
                            .inputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES)
                            .inputRange(0, 300)
                            .positiveText(R.string.save)
                            .negativeText(R.string.cancel)
                            .input(context.getString(R.string.task_title), holder.textView.getText().toString(), new MaterialDialog.InputCallback() {
                                @Override
                                public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
                                    //Edit Task
                                    taskList.getTasks().get(holder.getAdapterPosition()).setTitle(input.toString().trim());
                                    notifyItemChanged(holder.getAdapterPosition());

                                    //save
                                    save();
                                }
                            }).show();
                }
            });
        }

为什么会这样呢?

杰瑞德(Jared)

解决它。我添加了onDropListener,并在其中只通知了recyclerview。然后,我使用实际正确的位置参数值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android:微调框适配器视图类型计数必须为1

RecyclerView 适配器 Android Studio

在调试的自定义适配器中未调用Getview,发现位置返回为-1

如何从Android中的RecyclerView适配器获取物品

android - 在 RecyclerView 适配器中创建和使用 ViewBinder

适配器中的Android RecyclerView显示问题

Android | 在ViewHolder onClick上更新RecyclerView适配器

Android:RecyclerView Click Listener未进入适配器

Android从活动更改RecyclerView适配器上的TextView textSize

RecyclerView适配器中的数据绑定-Android

带有 RecyclerView 适配器的 Android ViewModel

库模块中的 Android RecyclerView 适配器

android recyclerview适配器进度条不显示

如何从Android Kotlin中的RecyclerView适配器获取arraylist

如何在分段适配器(Android)中获得位置?

Android Java-为2个或更多viewpagers制作1个ImageAdapter(当前为2个viewpagers配2个适配器)

Android基础适配器

RecyclerView 为适配器位置返回 null

RecyclerView Android错误:E / RecyclerView:未连接适配器;跳过布局

如何在 Android 中将 RecyclerView 用于另一个 RecyclerView 的适配器?

到recyclerview的Firebase数据显示错误-RecyclerView:android中未连接适配器

滚动时,RecyclerView如何从适配器获得1个额外的视图

每 1 秒刷新一次 RecyclerView 适配器

适用于现有recyclerView适配器的Android可扩展cardView

什么是Android设备上查看的数据绑定在RecyclerView适配器类的正确方法?

如何在android java中的数据绑定recyclerview适配器中创建2列

使用Android Studio中的Recyclerview适配器从Firebase中获取特定密钥

Android Studio从Fiewbase检索数据并获得错误E / RecyclerView:未连接适配器;跳过布局

我无法在 android studio 中将适配器附加到 recyclerview