私はしましたListView
、リスト内のすべての要素がTextViewの異なる2つのボタンが含まれているところを。このようなもの:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
このコードを使用しOnItemClickListener
て、アイテム全体のを作成できます。
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
ただし、アイテム全体をクリックできるようにするのではなく、各リスト要素の2つのボタンのみをクリックします。
だから私の質問は、これらの2つのボタンのonClickListenerを次のパラメーターでどのように実装するのですか?
int button
(要素のどのボタンがクリックされたか)int position
(これは、ボタンクリックが発生したリスト内の要素です)
更新:以下の私の回答に記載されている解決策を見つけました。これで、タッチスクリーンを介してボタンをクリックまたはタップできます。ただし、トラックボールで手動で選択することはできません。それは、常に全体のリスト項目を選択し、そこから私は設定していても、ボタンを無視して、次のリスト項目に直接行く.setFocusable(true)
とsetClickable(true)
のボタンのためにgetView()
。
また、このコードをカスタムリストアダプターに追加しました。
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
これにより、リスト項目を選択できなくなります。しかし、ネストされたボタンを選択可能にするのには役立ちませんでした。
誰かアイデアはありますか?