这是我的代码 - PadsGrid是一个ViewGroup - :
public class Emc_PadControllerActivity extends Activity implements OnTouchListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final PadsGrid pg = new PadsGrid(this, 8, 5, PadType.SMALL);
for (int i=0;i<pg.getChildCount();i++){
final PadController pc;
pc=(View) pg.getChildAt(i);
pc.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
pc.onTouch(arg0,arg1);
return true;
}});;
}
setContentView(pg);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
v.onTouchEvent(event);
return false;
}
}
在这里,我的观点的onTouch事件不是为什么我触摸它们,为什么?
答案 0 :(得分:1)
您希望将onTouchlistener设置为Emc_PadControllerActivity.this
,而不是使用匿名内部类:
pc.setOnTouchListener(Emc_PadControllerActivity.this)
这会在主类中调用你的onTouch()。在这里,您可以确定点击了哪个视图并采取相应的行动。
查看我之前的question here.