2012-06-13 32 views
13

tôi có một cái nhìn với một onTouch có thể phân biệt giữa đầu vào cảm ứng và nhấp chuột trái/giữa/phải, như trongLàm cách nào để chế độ xem của tôi phản hồi với con lăn chuột?

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (event.getButtonState() == MotionEvent.BUTTON_PRIMARY) // API 14 required 
    ... 
    ... 
} 

tôi cũng như quan điểm này để đáp ứng các mousewheel. onTouch không phải là cách, cũng như tôi không tìm thấy bất kỳ trình xử lý sự kiện nào khác để phản hồi con lăn chuột. Có lẽ quan điểm có thể giả vờ là có thể cuộn được và làm điều riêng với các phương pháp cuộn? Tại thời điểm này, tôi đã từ bỏ, và đang sử dụng đầu vào bàn phím (1 đến 9, cộng với 0) để chọn các phần tử hiển thị mà tôi muốn chọn với con lăn chuột.
Vì vậy, một gợi ý chắc chắn hoặc một chút mã sẽ được đánh giá cao.

Đừng lo lắng rằng giao diện người dùng Android yêu cầu bàn phím và chuột sẽ bị gây ra cho công chúng; ứng dụng là một công cụ phát triển.

EDIT: câu trả lời chính xác được đưa ra dưới đây, nhưng chỉ cần như vậy câu hỏi này là hữu ích hơn với người đọc trong tương lai, điều này được (hơi edited) mã thực tế mà tôi đang sử dụng kết quả là:

@Override 
public boolean onGenericMotionEvent(MotionEvent event) { 
    if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_SCROLL: 
     if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f) 
      selectNext() 
     else 
      selectPrev(); 
     return true; 
    } 
    } 
    return super.onGenericMotionEvent(event); 
} 
+0

Bạn có thể có được một sự kiện quan trọng, chẳng hạn như pageup hay gì đó không? GoogleTV có các bàn phím đó, nhưng tất cả tôi có thể tìm thấy các cuộc đàm phán về d-pad, không phải bánh xe cuộn. –

+0

@jeffamaphone, 'Toast.makeText (this," ke: "+ KeyEvent.keyCodeToString (mã khóa), Toast.LENGTH_SHORT) .show()' tạo ra kết quả tốt đẹp trong 'onKeyDown' của hoạt động. Nó im lặng khi tôi thao tác con lăn chuột. –

+1

Vâng, đáng để chụp. –

Trả lời

5

Câu trả lời được chấp nhận là liên kết tài liệu dẫn tôi đến mã ví dụ trong câu hỏi, nhưng câu trả lời đó đã bị xóa. Vì vậy, câu hỏi này không còn xuất hiện 'chưa được trả lời', đây là cách chế độ xem của bạn có thể phản ứng với một con lăn chuột:

@Override 
public boolean onGenericMotionEvent(MotionEvent event) { 
    if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_SCROLL: 
     if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f) 
      selectNext(); 
     else 
      selectPrev(); 
     return true; 
    } 
    } 
    return super.onGenericMotionEvent(event); 
} 
0

Hành động sự kiện bánh xe chuột được coi là sự kiện cuộn

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