0

テキストビューとイメージビューを持ついくつかの行を含むテーブルがあります。セレクタードローアブルを使用してクリック時に行の背景を変更しています。また、テキストの色とクリック時にイメージビュー画像を変更する必要があります。ここで説明

テキストビューの色は、テキストビューをクリックしたときではなく、親テーブルの行をクリックしたときに変更する必要があります。変更された色は保持されるべきではありません。

しかし、うまくいかないようです。

4

2 に答える 2

0

これを実現する簡単な方法は、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です。

于 2012-08-22T02:16:10.857 に答える
0

android TextViewのようにテーブル行のOnTouchListenerを設定します:クリック時にテキストの色を変更します

ontouchイベントで、行からtextviewの子を取得し、その色を変更します。

于 2012-09-02T09:57:37.663 に答える