13

ListViewの項目にonClickListenerを設定したいのですが、私はsetOnItemClickListenersetOnItemSelectedListenerという2つのメソッドを参照しています。私は公式の文書でこれらの2つの正当化された説明を見つけました。どんな目的に使うの?setOnItemClickListener VS ListOutItemSelectedListenerです。

アイテムを選択するには、アイテムをクリックする必要があります。次に、さまざまなメソッドの使用方法は何ですか?

答えて

20

項目がクリックされた

のような項目が選択されている対それは(単一選択)である(複数選択で使用される)

+0

これは公正だと思われます。 –

+0

あなたを助けてくれることを願っています! –

+2

+1を選択すると、単一選択と複数選択の区別ができます。他の誰かがここで設定した単一の選択を設定できる検索から着目することに注目する価値があります。listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE) –

3

必ずしもそうである必要はありません。キーボードまたは加速度計でナビゲート可能なListViewを持つことができます。また、アイテムをクリックすることは、それを選択することを意味する必要はありません。何かを選択した後、他のイベントが発生するまで選択をブロックしたいことがあります。

項目の選択に反応する場合は、setOnItemSelectedListenerを使用してください。ただし、ユーザーが反応する場合は、setOnItemClickListenerをクリックしてください。

0

私はOnItemSelectedListenerがリスト内の項目がキーパッドのナビゲーションキーを使って、またはタックボールを使って選択されたときに呼び出されると思います。方法とこれらの間に

4

違いはその説明に提示されている:

has been selected vs has been clicked 

実際には、差は、Androidに関してをクリックしただけ選択との間のものと同じです。 これはハイライトのように選択してください。の詳細な説明を参照してください状態here(android:state_selected)。 クリックはと同じで、アンドロイドの言葉でが押され、同じリンクの下でアンドロイド:state_pressedの下に記述されています。

+0

私はそれを読むでしょう。 –

-1

私はわからないが、それは私のopinion.Mightが間違っていることです。 setOnItemClickListener:このAdapterViewの項目がクリックされたときに呼び出されるコールバックを登録します。常にtrueを返します。

setOnItemSelectedListener:このAdapterViewのアイテムがクリックされたときに呼び出されるコールバックを登録します。trueを返し、falseも返します。 アイテムが選択されていない場合、何も選択されていないことが表示されます。これは、オプションを選択するユーザーに強制的です。アイテムを選択し、次のようにします。 しかし、ユーザーが項目を選択するのを忘れてしまった場合、彼はユーザーにオプションを選択しなかったことを記憶します。

関連する問題