2012-02-07 36 views
1

我在對話框中使用線性佈局,並且在該佈局中有一些TextView,我還想根據佈局的「按下」狀態更改它們的父級。他們有一個應該是什麼顏色的狀態列表,但是看起來當點擊佈局時,它下面的視圖沒有被賦予「單擊」狀態。Android:傳遞「點擊」狀態?

如何讓TextView在其父級佈局被點擊時改變顏色?

回答

1

最簡單的方法就是將事件傳遞給子視圖。您可以擴展TextView並添加一個可以從Layout的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 2012-02-07 00:37:23

+0

像這樣:http://developer.android.com/reference/android/view/View.OnTouchListener.html與其傾聽onClick,不如聽onTouch並對DOWN和UP事件做出反應。您將無法通過XML完成此操作,您需要在代碼中創建偵聽器並將其附加到您的佈局。 – 2012-02-07 00:58:17