我有自己的自定义列表视图,在每一行的末尾,我让ImageView从列表中删除该行,但当我单击此图像时,我得到"Arryindesoutofboundexception: length=681 indez=-1“
帮帮我
private OnClickListener imageviewClickListener = new OnClickListener() {
@Override
public void onClick(View v)
{
int index;
index=listView.getSelectedItemPosition();//itemsListView is the listview
dataAdapter.remove(topicsList.get(index));
topicsList.clear();
dataAdapter.notifyDataSetChanged();
}
};
发布于 2013-02-25 12:55:44
您的项目未被选中,因为图像截取了触摸事件,因此所选位置为-1。为了实现这一点,你需要告诉OnClickListener它属于什么项目:
private static class MyClickListener implements OnClickListener {
private final int mIndex;
private MyClickListener (int index) {
mIndex = index;
}
@Override
public void onClick(View v) {
dataAdapter.remove(topicsList.get(mIndex));
topicsList.clear();
dataAdapter.notifyDataSetChanged();
}
}
发布于 2013-02-25 12:52:22
您正在尝试从ListView
获取所选项目的位置,即使没有选择任何项目。从getSelectedItemPosition()
的文档中,您可以看到,如果没有选择任何项,那么它将返回INVALID_POSITION
,即-1
。
https://stackoverflow.com/questions/15060279
复制相似问题