Android 如何使视图在单击时作出反应
我已经创建了继承视图的自定义小部件Android 如何使视图在单击时作出反应,android,android-widget,Android,Android Widget,我已经创建了继承视图的自定义小部件 <com.test.www.view.ElementView android:id="@+id/surface1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" android:layou
<com.test.www.view.ElementView
android:id="@+id/surface1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_weight="1"
/
问题是此ElementView不会在单击时做出反应。我有调度事件的覆盖,但它没有进入。有人能帮我吗?如何使ElementView在单击时做出反应?我可能会这样做:
ElementView ev = (ElementView)findViewById(R.id.surface1);
ev.setOnClickListener(evOnClick);
public OnClickListener evOnClick = new OnClickListener() {
@Override
public void onClick(View v, int arg1) {
//DO ONCLICK STUFF
}
};
我不确定你是否能像你所尝试的那样将onClick放在视图定义中,但我希望有人能告诉我如何操作。谢谢,它现在输入了,但我无法更改颜色!它通过代码显示,但视图保持不变。可能在ElementView中创建一个公共函数来处理颜色变化。然后在onClick中调用该函数:ev.changeColor(someVar);您可以尝试在处理onClick内容结束时对视图调用invalidate(),强制它重新绘制。
ElementView ev = (ElementView)findViewById(R.id.surface1);
ev.setOnClickListener(evOnClick);
public OnClickListener evOnClick = new OnClickListener() {
@Override
public void onClick(View v, int arg1) {
//DO ONCLICK STUFF
}
};