2012-05-04 5 views
2

푸시 될 때 'W'를 놓을 때 'X'를 보내고 '놓을 때'를 보낼 버튼을 만들고 싶습니다. 지금 코드화 된 방식으로, 버튼을 누를 때 아무 것도하지 않고, 놓으면 'W'가 전송됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 코드 : 및 button.onKeyUp을 (누름) = 무언가를 또는 button.onTouch을 (발표시) = button.onClick을 누르면 뭔가를해야만 수행 할 때Android에서 버튼 누름 및 버튼 놓기 이벤트가 겹쳐졌습니다

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

button.onKeyDown() =은) (일도하지 출시 때 = 무언가를

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(); 
} 
+0

하이 Storm2010..thx 통해 UR response..there을 위해해야 ​​내가 PU 나 한테 가르쳐 줄 수있어? – fendy

+0

thx mr.storm2012 – fendy

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 
    } 
}; 
관련 문제