2013-01-25 15 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

相關問題