2012-02-07 38 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