2010-01-10 25 views
8

Tôi muốn phát hiện thời điểm người dùng chạm vào bất kỳ vị trí nào trong chế độ xem trong ứng dụng Android của tôi.Cách phát hiện khi người dùng chạm vào chế độ xem trong Android

Mã của tôi trông như thế này:

linearLayout = (LinearLayout) findViewById(R.id.linearLayout); // main layout 
// ... 
linearLayout.setOnTouchListener(this); 
// ... 
public boolean onTouch(View v, MotionEvent event) { 
    Toast.makeText(this, "Touch!", 1000); 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     Toast.makeText(this, "Down!", 1000); 
     return true; 
    } 
    return false; 
} 

... nhưng khi tôi bấm vào xem, tôi không nhận được Toast!

Các sự kiện liên lạc có hoạt động trong trình mô phỏng hay tôi đã gặp lỗi trong mã của mình?

+0

tôi đang tìm kiếm các giải pháp tương tự. Cảm ơn Biswajit –

Trả lời

12

Tôi cho rằng sự cố xảy ra với mã hiển thị thư của bạn thay vì mã phát hiện cảm ứng.

Bạn đang tạo đối tượng Toast nhưng bạn không hiển thị đối tượng đó. Bạn cần gọi số show() method.

Ngoài ra, đối số duration đến the makeText() method phải là một trong số LENGTH_SHORT hoặc LENGTH_LONG.

Hãy thử:

Toast.makeText(this, "Down!", Toast.LENGTH_LONG).show(); 
+4

+1. Tôi * luôn luôn * quên thêm '.show()' vào bánh mì nướng của tôi! –

+0

d'oh! + 1 phiếu bầu + 1 đánh dấu + cảm ơn x 2 –

+0

Chúng ta đều đã ở đó ... tôi cũng có ... hai lần. –

Các vấn đề liên quan