1
我在对话框中使用线性布局,并且在该布局中有一些TextView,我还想根据布局的“按下”状态更改它们的父级。他们有一个应该是什么颜色的状态列表,但是看起来当点击布局时,它下面的视图没有被赋予“单击”状态。Android:传递“点击”状态?
如何让TextView在其父级布局被点击时改变颜色?
我在对话框中使用线性布局,并且在该布局中有一些TextView,我还想根据布局的“按下”状态更改它们的父级。他们有一个应该是什么颜色的状态列表,但是看起来当点击布局时,它下面的视图没有被赋予“单击”状态。Android:传递“点击”状态?
如何让TextView在其父级布局被点击时改变颜色?
最简单的方法就是将事件传递给子视图。您可以扩展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();
}
我如何才能知道当按压事件是这样做我可以改变颜色了? – Flynn 2012-02-07 00:37:23
像这样:http://developer.android.com/reference/android/view/View.OnTouchListener.html与其倾听onClick,不如听onTouch并对DOWN和UP事件做出反应。您将无法通过XML完成此操作,您需要在代码中创建侦听器并将其附加到您的布局。 – 2012-02-07 00:58:17