首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >listView.getSelectedItemPosition()返回索引-1

listView.getSelectedItemPosition()返回索引-1
EN

Stack Overflow用户
提问于 2013-02-25 12:45:15
回答 2查看 7.2K关注 0票数 6

我有自己的自定义列表视图,在每一行的末尾,我让ImageView从列表中删除该行,但当我单击此图像时,我得到"Arryindesoutofboundexception: length=681 indez=-1“

帮帮我

代码语言:javascript
运行
复制
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();


  }
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-25 12:55:44

您的项目未被选中,因为图像截取了触摸事件,因此所选位置为-1。为了实现这一点,你需要告诉OnClickListener它属于什么项目:

代码语言:javascript
运行
复制
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();
    }
}
票数 5
EN

Stack Overflow用户

发布于 2013-02-25 12:52:22

您正在尝试从ListView获取所选项目的位置,即使没有选择任何项目。从getSelectedItemPosition()的文档中,您可以看到,如果没有选择任何项,那么它将返回INVALID_POSITION,即-1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15060279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档