13

Tôi muốn đặt onClickListener trên các mục của một ListView nhưng tôi thấy hai phương thức setOnItemClickListenersetOnItemSelectedListener. Tôi didint tìm thấy bất kỳ lời giải thích hợp lý cho hai trong tài liệu chính thức. Mà một trong những sử dụng cho mục đích gì?setOnItemClickListener VS setOnItemSelectedListener trong ListView.

Để chọn một mục, người dùng sẽ phải nhấp vào mục đó, sau đó sử dụng các phương pháp khác nhau là gì?

Trả lời

20

Nó giống như

mục được nhấp (lựa chọn duy nhất) vs mục được chọn (được sử dụng trong nhiều lựa chọn)

+0

Được rồi ... điều này có vẻ công bằng. –

+0

hy vọng nó đã giúp bạn !! –

+2

+1 cho sự khác biệt giữa lựa chọn duy nhất và nhiều lựa chọn. Đáng chú ý cho bất kỳ ai khác đến đây từ một tìm kiếm mà lựa chọn duy nhất có thể được thiết lập bởi các thiết lập listView.setChoiceMode (ListView.CHOICE_MODE_SINGLE) –

3

Không nhất thiết phải đúng sự thật. Bạn có thể có một ListView có thể điều hướng bằng bàn phím hoặc gia tốc kế. Việc nhấp vào một mục không cần phải chọn nó - có thể sau khi chọn một thứ gì đó khi bạn muốn chặn lựa chọn cho đến khi một số sự kiện khác xảy ra.

Cho tất cả các mục đích nếu bạn muốn phản ứng với lựa chọn một mục sử dụng setOnItemSelectedListener nhưng nếu bạn muốn phản ứng với người dùng nhấp vào chúng, hãy truy cập setOnItemClickListener.

0

Tôi nghĩ rằng OnItemSelectedListener được gọi khi một mục trong danh sách được chọn bằng cách sử dụng các phím điều hướng của bàn phím hoặc bằng cách sử dụng tackball.

4

khác biệt giữa các phương pháp được trình bày trong mô tả của họ:

has been selected vs has been clicked 

Trên thực tế, sự khác biệt chỉ là giống như một giữa chọnnhấp về Android. Chọn nó giống như đánh dấu, vui lòng tham khảo giải thích chi tiết hơn về được chọn trạng thái here (trong android: state_selected). Nhấp chuột giống như nhấn trong điều khoản Android và được mô tả trong cùng một liên kết nhưng dưới android: state_pressed.

+0

Tôi sẽ đọc. –

-1

Tôi không chắc chắn nhưng nó là opinion.Might của tôi là sai. setOnItemClickListener: Đăng ký một cuộc gọi lại để được gọi khi một mục trong AdapterView này đã được nhấp. Nó luôn trả về true.

setOnItemSelectedListener: Đăng ký gọi lại để được gọi khi một mục trong AdapterView này được nhấp vào.it trả về true và false. Nếu không chọn bất kỳ mục nào thì nó sẽ không hiển thị gì được chọn. Nó chỉ là lực để người dùng chọn một tùy chọn.Chọn một mục và tiếp theo chỉ là loại đó. Nhưng khi người dùng quên chọn một mục thì nếu cũng sẽ nhớ người dùng mà anh ta không chọn bất kỳ tùy chọn nào.

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