2

押すと「W」を送信し、離すと「X」を送信するボタンを作成したいと考えています。私がコード化した方法では、ボタンを押しても何もせず、離すと「W」が送信されます。私は何を間違っていますか?コード:

    but = new Button(this);
    but.setText("FORWARD");
    but.setGravity(Gravity.CENTER);
    but.setId(Tab2_Forward);
    but.setOnClickListener(this);
    but.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
      LayoutParams.WRAP_CONTENT));
    panelH.addView(but);

    public void onClick(View v) {
       int cmdId = v.getId();
       if (cmdId == Menu_Tab1) {
          startDiscoverBluetoothDevices();
       }
       if (cmdId == Tab2_Forward) {
          if (Bee_btSocket != null)
             try {
                 Bee_btSocket.getOutputStream().write('w');
             } catch (IOException e) {
                 // TODO Auto-generated catch block
                 e.printStackTrace();
             }
          }
4

2 に答える 2

6

使用する:

but.setOnTouchListener(btnTouch);


private View.OnTouchListener btnTouch = new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        if (action == MotionEvent.ACTION_DOWN)
            System.out.println("Touch");
        else if (action == MotionEvent.ACTION_UP)
            System.out.println("Release");
        return false;   //  the listener has NOT consumed the event, pass it on
    }
};
于 2013-08-20T20:15:10.883 に答える
4

button.onKeyDown() = 押されたときに何かを実行し、button.onKeyUp() = 離されたときに何かを実行、または button.onTouch() = 押されたときに何かを実行 button.onClick() = 離されたときに何かを実行

    btn2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
        makethisToastup();}});
    btn2.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View view, MotionEvent event) {
        makethisToastdown();
        return false;
    }});

public void makethisToastup(){
Toast.makeText(this, "Buttonup", Toast.LENGTH_LONG).show();
}
public void makethisToastdown(){
Toast.makeText(this, "Buttondown", Toast.LENGTH_LONG).show();
}
于 2012-05-04T15:19:03.437 に答える