ListItem索引总是-1?

时间:2016-03-26 14:18:08

标签: android listview android-fragments

我运行了一些代码,我需要获取ListItem索引,因此我可以将该索引传递给单独的Fragment。它起初并没有工作,所以我设立了一个祝酒词来检查每个项目的索引是什么样的......

songView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            // Getting list item index
            int songIndex = songView.getSelectedItemPosition();
            Toast.makeText(getActivity(), "Index number : " + " " + songIndex, Toast.LENGTH_SHORT).show();                

        }
    });

但是对于我点击的每个项目,我总是将Index作为-1。有解决方案吗感谢。

2 个答案:

答案 0 :(得分:0)

方法onItemClick传入参数int position。您使用它而不是getSelectedItemPosition()。所以你的更新代码如下:

songView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            // Getting list item index
            int songIndex = position;
            Toast.makeText(getActivity(), "Index number : " + " " + songIndex, Toast.LENGTH_SHORT).show();                

        }
    });

答案 1 :(得分:-1)

尝试:

int songIndex = position;

而不是

int songIndex = songView.getSelectedItemPosition();;