2012-06-27 185 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