ユーザーがListViewのさまざまなビューをクリックしたときにさまざまな動作を実装するにはどうすればよいですか?
-
29-10-2019 - |
質問
私はAndroid開発に不慣れなので、これは一種の基本的な質問です。
連絡先アプリと同じ動作を実装したいと思います。一連の連絡先を含むListViewがあります|電話のアイコン。連絡先の名前をクリックしたときの動作と、電話のアイコンをクリックしたときの動作があります。
これが私のコードです。 どんな助けでも大歓迎です。
要約すると、このアプローチの何が問題になっていますか
スイッチ(v.getId()){ ケースR.id.imageButtonAction:
アクティビティクラス ジェネラコディセタグプレ
アクティビティxml ジェネラコディセタグプレ
行xml genericocodicetagpre
解決 2
この問題をエレガントに、より少ないコードで解決するための新しいはるかに優れたアプローチ!!!
以下の変更により、ユーザーインターフェースの応答性が大幅に向上し、ダブルクリックの問題が発生しなくなりました。:)
単純に機能するコードははるかに少ないです!
行xmlの変更
線形レイアウトを挿入して、両方をラップします
この線形レイアウトで、android:onClick="editCompanyClick"という名前のタグを挿入します
これは、アクティビティで呼び出されるクリックハンドラです。
線形レイアウトを挿入して、
この線形レイアウトで、android:onClick="dialClick"という名前のタグを挿入します
これは、アクティビティで呼び出されるクリックハンドラです。
アクティビティクラスの変更
前のコードを削除する
ジェネラコディセタグプレ
コードを挿入
ジェネラコディセタグプレ
行xml
ジェネラコディセタグプレ
他のヒント
onItemClick()コールバックは、特定のビューとその位置(0ベース)の両方を受け取ります。これらはそれぞれ、クリックされたビューを決定するのに役立ちます。位置は、追加したアイテムへのインデックスです。より複雑なシナリオでは、view.setTag(Object o)を使用し、getTag()を使用してコールバックから取得できます。
ついに解決策を見つけました。 これで問題は解決します。しかし、別のものを追加します。予想どおり、ユーザーがさまざまなビュー(TextViewまたはImageView)をクリックしたときのListViewの動作が異なるようになりました。 しかし、それは無反応のようです。company.setOnClickまたはdial.setOnClickのいずれかをトリガーするには、「ダブルクリック」する必要があります。何か提案はありますか?
//ユーザーインタラクションにアクションを追加 ジェネラコディセタグプレ