2012-02-07 6 views
1

私は、ダイアログ内で線形レイアウトを使用していて、そのレイアウト内にいくつかのTextViewを持っています。そのレイアウトの親の「押された」状態に基づいて色を変更したいと思っています。彼らはどんな色のための状態リストを持っていますが、レイアウトがクリックされると、その下のビューには「クリックされた」状態が与えられていないようです。Android:「クリック済み」ステータスに合格する?

親のレイアウトをクリックしたときに、どのようにTextViewsの色を変更できますか?

答えて

1

最も簡単な方法は、子ビューが何であれ、イベントを渡すことです。 TextViewを拡張し、レイアウトのonclickハンドラから呼び出せるメソッドを追加することができます。

あなたの活動で、その後
class MyTV extends TextView{ 

    public MyTV(Context c){ 
    //constructor gets context in case you want to make instances from code rather than XML 
    } 
    public doSomethingToMe(){ 
    //do stuff to this View from outside 
    } 
} 

...

public void layoutClicked(View v){ //call this from your layout click 
    ((MyTV)findViewById(R.id.myTV1)).doSomethingToMe(); 
} 
+0

私はプレスイベントが行われたときに、私は戻って色を変更することができます伝えることができますどのように? – Flynn

+0

ように:http://developer.android.com/reference/android/view/View.OnTouchListener.html onClickを聞くのではなく、onTouchを聞き、DOWNとUPの両方のイベントに反応します。 XMLでこれを行うことはできません。コードでリスナーを作成し、レイアウトにアタッチする必要があります。 –

関連する問題