Android ListItem索引始终为-1?

Android ListItem索引始终为-1?,android,listview,android-fragments,Android,Listview,Android Fragments,我在需要获取列表项索引的地方运行了一些代码,这样我就可以将该索引传递到一个单独的片段。一开始它不起作用,所以我设置了一个祝酒词来检查每个项目的索引,所以 songView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,

我在需要获取
列表项
索引的地方运行了一些代码,这样我就可以将该索引传递到一个单独的
片段
。一开始它不起作用,所以我设置了一个祝酒词来检查每个项目的索引,所以

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();                

        }
    });
songView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//获取列表项索引
int songIndex=songView.getSelectedItemPosition();
Toast.makeText(getActivity(),“索引号:”+“”+songIndex,Toast.LENGTH_SHORT).show();
}
});
但是对于我单击的每个项目,我总是以
索引
作为-1结束。有什么解决办法吗?谢谢。

试试:

int songIndex = position;
而不是

int songIndex = songView.getSelectedItemPosition();;

方法
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();                

        }
    });
songView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//获取列表项索引
指数=位置;
Toast.makeText(getActivity(),“索引号:”+“”+songIndex,Toast.LENGTH_SHORT).show();
}
});

使用传递到该方法的
位置
参数。您已经为索引定义了位置。用那个。