2013-01-25 14 views
1

我的活动包含2个片段。左边的片段1包含一个ListView,让我们调用listView1,右边的片段2包含一个GridView。每次选择listView1中的项目时(用户使用D-pad导航),我实现了onItemSelectedListener以将数据发送到远程服务器。听者如下:导航回到上一个选定项目时,ListView onItemSelected不会触发

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 reference中,只有当新选择的位置与先前选择的位置不同时,才会调用onItemSelected方法。

那么即使当我回到上一个选择的项目时,我怎么能让onItemSelected被选中?

感谢您的进步!

回答

0

使用onListItemClick代替:

@Override 
public void onListItemClick(ListView parent, View view, int position, long id) { 
    sendData(); 
} 
+0

谢谢马尔钦S.但是,它需要用户执行“按回车键”,因为它们使用的d-板来浏览其可能降低他们的经验行动。 – vqtr

相关问题