私はListView
を持っています。リストの各要素には、TextViewと2つの異なるボタンが含まれています。このような何か:このコードではAndroid:ListView要素の複数のクリック可能なボタン
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つのボタンのみ各リスト要素の
だから私の質問は、どのように私は、次のパラメータを使用してこれらの二つのボタンのonClickListenerを実装してくださいされています要素である((要素のどのボタンがクリックされた)
int button
int position
をボタンのクリックが起こったのリスト)で
更新:私の答えに記載されている解決策が見つかりました。これで、タッチスクリーンでボタンをクリック/タップできます。しかし、トラックボールで手動で選択することはできません。 getView()
のボタンには.setFocusable(true)
とsetClickable(true)
を設定していますが、常にリスト項目全体が選択され、そこからボタンを無視して次のリスト項目に直接移動します。
は、私も自分のカスタムリストアダプタにこのコードを追加:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
これは何のリスト項目はすべて、それ以上で選択されていないことが発生します。しかし、ネストされたボタンを選択可能にするのに役立たなかった。
誰かアイデア?
これらはまだ必要ですか? –
BaseAdapterコードを見ると、areAllItemsEnabled()およびisEnabled()がtrueにハードコーディングされているため、ロジックのない単純なプレースホルダになります。 –
SimpleCursorAdapterを使用する場合はどうすればよいですか?simplecursoradapterを拡張するカスタムアダプタを作成する必要はありますか? – oratis