2013-02-25 97 views
4

我有我的自定义列表视图和每行的末尾我有ImageView从列表中删除该行,但当我点击这个图像时,我得到“Arryindesoutofboundexception:length = 681 indez = -1"listView.getSelectedItemPosition()返回索引-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(); 


    } 
}; 
+0

阅读:http://stackoverflow.com/questions/10723685/getselecteditemposition-always-return-1 – Barney 2013-02-25 04:53:39

回答

4

您的项目未被选中,因为图像截取了触摸事件,因此所选位置为-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(); 
    } 
} 
+0

谢谢...... :-)它现在工作 – Nik 2013-02-25 05:01:14