为什么我的ViewGroup的子项上的触摸事件不起作用?

时间:2012-04-14 16:48:44

标签: android view ontouchevent viewgroup

这是我的代码 - 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事件不是为什么我触摸它们,为什么?

1 个答案:

答案 0 :(得分:1)

您希望将onTouchlistener设置为Emc_PadControllerActivity.this,而不是使用匿名内部类:

   pc.setOnTouchListener(Emc_PadControllerActivity.this)

这会在主类中调用你的onTouch()。在这里,您可以确定点击了哪个视图并采取相应的行动。

查看我之前的question here.