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
  }
};