[解決済み] Androidです。複数のクリック可能なボタンを持つListView要素
質問
私は
ListView
ここで、リストの各要素は、TextViewと2つの異なるButtonを含んでいます。このようなものです。
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;
}
このため、リスト項目が全く選択できなくなりました。しかし、ネストされたボタンを選択可能にするのには役に立ちませんでした。
どなたか思い当たる方はいらっしゃいますか?
解決方法は?
この解決方法は、実は思ったより簡単です。単に、カスタムアダプタの
getView()
メソッドに、使用しているボタン用の setOnClickListener() を追加します。
ボタンに関連するデータはすべて
myButton.setTag()
の中で
getView()
で、onClickListener の中で
view.getTag()
に詳しい解決策を投稿しました。 私のブログ をチュートリアルとして公開しました。
関連
-
NetworkOnMainThreadException
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
プロセス 'command 'F:\sdkbuild-tools', 26.0.2 AAAPT.exe' finished with non-zero exit value 1
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
アンドロイドのエリプサイズを使用する
-
Androidのカラーグラデーション実装のまとめ
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
android studioが新しいプロジェクトを作成しますが、プロジェクトの同期に成功するまでデザインエディタが使用できません。
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
Androidで発生した問題、解決策とヒント
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
Error:A problem occurred configuring project ':app'. > ビルドを見つけられませんでした。
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.