【发布时间】:2018-03-23 22:54:34
【问题描述】:
我想在用户 longClicked 到选定的 RecyclerView 项目时删除一个项目。 mWebsite 是一个包含两个字符串值的对象列表。
RecyclerViewAdapter 的 setOnLongClickListener;
holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(mContext, "ITEM: "+position, Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder2 = new AlertDialog.Builder(mContext);
builder2.setTitle("Are you sure to delete this item?");
builder2.setMessage("'"+mWebsite.get(position).getWebUrl()+"'");
builder2.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mWebsite.remove(position);
}
});
builder2.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder2.setCancelable(true);
builder2.create().show();
return true;
}
});
但是,我得到了这个错误; (第 106 行是;mWebsite.remove......)
at java.util.ArrayList.get(ArrayList.java:310)
at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
【问题讨论】:
-
查看您的错误,它不在第 106 行,而是在第 310 行,并且在“java.util.ArrayList.get(ArrayList.java:310)”获取数据时遇到问题
-
你能显示完整的代码吗
-
我认为该行会导致错误(但请添加代码) builder2.setMessage("'"+mWebsite.get(position).getWebUrl()+"'"); @Salman500 ArrayList.java:310 是堆栈跟踪元素,而不是发生错误的行。
标签: java android listview android-recyclerview