Android java - 正确处理主要活动中的多个按钮的方法

时间:2013-10-30 20:37:54

标签: java android

我一直在为我想要控制的车辆构建控件。但是我仍然是Java和android开发的新手。所以我正在寻找从UI处理多个按钮的最佳实践。到目前为止,我已经设法创建了两个位于同一屏幕上的按钮,请参阅下面的代码。这是处理和创建按钮的正确方法吗?

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /* Left Button */
    Button btnLeft = (Button)findViewById(R.id.btnLeft);
    btnLeft.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:   
                    // Create thread
                case MotionEvent.ACTION_UP:
                    // End Thread
                }
        return false;
        }
    });

    /* Right button */
    Button btnRight = (Button)findViewById(R.id.btnRight);
    btnRight.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:   
                    // Create thread
                case MotionEvent.ACTION_UP:
                    // End Thread
                }
        return false;
        }
    });
}

}

该代码实际上有效 - 我也计划在switch-case语句中创建线程,我还没想出那个。任何意见都将不胜感激。

1 个答案:

答案 0 :(得分:3)

第1步:使活动实现OnClickListener

第2步:覆盖方法onClick

public class MainActivity extends Activity implements OnClickListener {

    Button btnLeft, btnRight;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* Left Button */
        btnLeft = (Button) findViewById(R.id.btnLeft);
        btnLeft.setOnTouchListener(this);

        /* Right button */
        btnRight = (Button) findViewById(R.id.btnRight);
        btnRight.setOnTouchListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v == btnleft) {
            // do stuff for button left
        }
        if (v == btnRight) {
            // do stuff for button right
        }
    }
}