1

私のアクティビティには 2 つのフラグメントが含まれています。左側のフラグメント 1 には ListView が含まれており、listView1 を呼び出してみましょう。右側のフラグメント 2 には GridView が含まれています。listView1 のアイテムが選択されるたびにリモート サーバーにデータを送信する onItemSelectedListener を実装しました (ユーザーは方向パッドを使用して移動します)。リスナーは次のとおりです。

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() メソッドが起動されなくなったことです。検索を行ったところ、新しく選択された位置が以前に選択された位置と異なる場合にのみ onItemSelected メソッドが呼び出されることがAndroid リファレンスでわかりました。

では、前に選択した項目に戻った場合でも、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 に答える