2012-06-27 216 views
1

我想在按下按鈕時打印某些內容(不是在它被釋放後)。 在那一刻我有這個,但它只能一次......按下按鈕的同時按下了

button.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      System.out.println("pressed"); 
      return true; 
     } 
     return false; 
    } 
}); 
+0

刪除「返回true;」 – VinceFR

+0

它的相同:\ – user1477414

+0

你是否希望它不斷被打印「按下」到控制檯?或者你想讓它只顯示一次? – WindyB

回答

2

的System.out不會在Android設備正常工作(不會顯示在設備上的任何東西) ,如果你有一個文本視圖您可以在MotionEvent.ACTION_DOWN設置文本,你已經在做並在MotionEvent.ACTION_UP上將文本視圖的文本設置爲空。 類似這樣的:

public class TestActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main2); 
     final TextView textView = (TextView) findViewById(R.id.textview); 
     final Button button = (Button) findViewById(R.id.button); 
     button.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction() == MotionEvent.ACTION_DOWN){ 
        textView.setText("Button Pressed"); 
       } 
       if(event.getAction() == MotionEvent.ACTION_UP){ 
        textView.setText(""); //finger was lifted 
       } 
       return true; 
      } 

     }); 
    } 

} 
+1

'System.out' data can在LogCat中查看。 – iNan

+0

但在設備 – Raykud

+0

上無用,在LogCat上顯示消息的正確方法是使用Log方法...即。 Log.e(「myClass」,「MyMessage」); – Raykud

3

試試這個,而你按下它不間斷的打印按下消息。

button.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
      System.out.println("pressed"); 
      return false; 
    } 
}); 
+0

只有當用戶移動手指並檢測到ACTION_MOVE時纔會工作。 – OneBigQuestion