我写了一些代码从回收者视图对象中删除物品。那是在数组列表里面 直到大小和索引相等或索引变大为止。我真的找不到问题
public void deleteSelectedItems(){
if (selectedItemList.size() < 1)
return;
for(int i = 0 ; i < selectedItemList.size() ; i++){
int index = selectedItemList.get(i) ;
Log.e("AAA",index + "");
guitaristsList.remove(index);
}
selectedItemList.clear();
notifyDataSetChanged();
}
public void onClick(View v) {
if (isOnActionMode) {
if (chxDelete.isChecked())
selectedItemList.add(getAdapterPosition());
else
selectedItemList.remove((Object)getAdapterPosition());
if (onCheckboxClickListener != null)
onCheckboxClickListener.onCheckboxCheckedChanged(selectedItemList.size());
}
}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.amehrvarz.mycontextual, PID: 12492
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
at java.util.ArrayList.remove(ArrayList.java:503)
at com.amehrvarz.mycontextual.GuitaristAdapter.deleteSelectedItems(GuitaristAdapter.java:120)
at com.amehrvarz.mycontextual.MainActivity$3.onActionItemClicked(MainActivity.java:71)
at androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9.onActionItemClicked(AppCompatDelegateImpl.java:2452)
at androidx.appcompat.app.WindowDecorActionBar$ActionModeImpl.onMenuItemSelected(WindowDecorActionBar.java:1123)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:840)
at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:991)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:981)
at androidx.appcompat.widget.ActionMenuView.invokeItem(ActionMenuView.java:625)
at androidx.appcompat.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:151)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
I / Process:正在发送信号。 PID:12492 SIG:9