2

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

4

1 回答 1

1

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

   pc.setOnTouchListener(Emc_PadControllerActivity.this)

这将在主类中调用您的 onTouch()。在这里,您可以确定单击了哪个视图并采取相应措施。

在这里查看我之前的问题。

于 2012-04-14T16:59:30.540 回答