1

我的活动包括 2 个片段。左边的Fragment 1包含一个ListView,我们叫listView1,右边的Fragment 2包含一个GridView。我实现了一个 onItemSelectedListener 以在每次选择 listView1 中的项目时向远程服务器发送数据(用户使用 D-pad 导航)。监听器如下:

listView1.setOnItemSelectedListener(new OnItemSelectedListener(){
    public void onItemSelected(AdapterView<?> parent, View view, 
                                          int position, long id){
        //send data to sever here
        sendData();
    }
});

当我在 ListView 中导航时没关系。onItemSelected() 中的 sendData() 方法被正常调用。但问题是每次我导航到我的 GridView,然后导航回 listView1 中的上一个选定项目时,onItemSelected 和 sendData() 方法都不再触发。我做了一个搜索,在android参考中发现只有当新选择的位置与之前选择的位置不同时才会调用onItemSelected方法。

那么,即使我导航回上一个选定的项目,我如何才能让 onItemSelected 触发呢?

提前感谢!

4

1 回答 1

0

使用 onListItemClick 代替:

@Override
public void onListItemClick(ListView parent, View view, int position, long id) {
    sendData();
}
于 2013-01-25T02:25:33.113 回答