テキストビューとイメージビューを持ついくつかの行を含むテーブルがあります。セレクタードローアブルを使用してクリック時に行の背景を変更しています。また、テキストの色とクリック時にイメージビュー画像を変更する必要があります。ここで説明
テキストビューの色は、テキストビューをクリックしたときではなく、親テーブルの行をクリックしたときに変更する必要があります。変更された色は保持されるべきではありません。
しかし、うまくいかないようです。
これを実現する簡単な方法は、xmlのテキストビューにonClickプロパティを設定することです。
android:onClick="changeColor"
次に、ビューが属するアクティビティでメソッドを使用します
public void changeColor(View v){
v.setBackgroundColor(color);
}
vはchangeColor()
メソッドを呼び出すビューになります(したがって、色を変更したいビューになります)
これを拡張して(または他のビューのonClickメソッドとして設定する他のメソッドを記述して)、vを適切なビューにキャストすることで他のビューのプロパティを変更できます(つまり、TextViewでテキストの色を変更するか、ImageViewで画像の描画可能ファイルを変更します)
また、どのビューがメソッドを呼び出しているかを正確に知りたい場合は、v.getId()をオンに切り替えることができます。ここで、caseステートメントはRで設定されたID、つまりandroid:id="@+id/name
プロパティで設定したIDです。
android TextViewのようにテーブル行のOnTouchListenerを設定します:クリック時にテキストの色を変更します
ontouchイベントで、行からtextviewの子を取得し、その色を変更します。