質問

私は次のように設定された ListView を使用しています。

<ListView android:id="@android:id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:longClickable="false"
    android:choiceMode="singleChoice">
</ListView>

私のコードでは、次のように OnItemSelectedListener を ListView に追加します。

getListView().setAdapter(adapter);
getListView().setOnItemSelectedListener(this);

私のアクティビティは次のようにリスナーを実装します。

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    Log.d("Tag", "ListItemSelected: Parent: " + parent.toString() + " View: "
            + view.toString() + " Position: " + " Id: " + id);
}

私の希望は、リスト内の何かをクリックした瞬間にこのデバッグ出力が表示されることです。ただし、デバッグ出力は LogCat には表示されません。

役に立ちましたか?

解決

OnItemSelectedListener のリスト項目の選択ではなく、リストをリッスンアイテムをクリックます。

この場合の選択は、デバイスのトラックパッドと、この項目にフォーカスを移動させるように見ることができます。

OnItemClickListener して使用する必要があります希望行動1を取得するにはます。

他のヒント

あなたがタッチ対応デバイス上で、指でテストすることが起こるので、

それはです。 タッチモードのでは、何のフォーカスと選択範囲がありません。選択が必要なUIは、ラジオボタンとして、ウィジェットの異なる種類を使用する必要があります。

最初に設定する必要があるのは、 ChoiceMode、その後、ListView では、選択したイベントは受け入れられません。 setOnItemSelectedListener に登録されています AdapterView、メソッド内のコールバック handleDataChanged()、しかしクラス AbsListView このメソッドをオーバーライドし、決してコールバックしないでください OnItemSelectedListener

enter image description here

このメソッドで seletedItem を取得できます setOnItemClickListener

     mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.e("TAG", "onItemClick: " + position);
            SparseBooleanArray positions = mListView.getCheckedItemPositions();
            Log.e("TAG", "onItemSelected: " + positions.toString());

        }
    });
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top