Tôi biết câu hỏi này đã được hỏi trước đó và câu trả lời là ghi đè lênPrepareContextMenu()/onCreateContextMenu(). Nhưng tôi không hiểu và không nhận được bất kỳ giải pháp nào cho nó. Xin hãy giúp tôi làm thế nào để vô hiệu hóa menu ngữ cảnh cho các mục ListView cụ thể.cách tắt menu ngữ cảnh cho các mục ListView cụ thể trong Android
Trả lời
Mở menu ngữ cảnh tùy thuộc vào một số logic của bạn. Ví dụ, trong phương thức onItemClick (trong listView của bạn), bạn nên kiểm tra nội dung của mục của bạn và hiển thị hoặc không hiển thị menu ngữ cảnh. Tôi không hiểu, tại sao nó là vấn đề cho bạn?
CẬP NHẬT
public class ExampleActivity extends ListActivity {
private ListView mListView;
private ArrayList<String> mList = new ArrayList<String>();
private ArrayAdapter<String> mArrayAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mArrayAdapter = new ArrayAdapter<String>(this, android.R.id.list ,mList);
mListView = (ListView) findViewById(android.R.id.list);
setListAdapter(mArrayAdapter);
registerForContextMenu(mListView);
mListView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView , View v,int position, long id) {
mListView.getItemAtPosition(position); //check current item with your logic and show or don't show contextMenu
// for example I will show
mListView.showContextMenu(); //to show
return true;
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
// add contextmenu items
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
// todo some logic...
return super.onContextItemSelected(item);
}
}
Có thể nó sẽ giúp bạn ... chúc may mắn ...
Trong onCreate(), tôi đang đăng ký listview của mình với registerForContextMenu (listview) .Và trong onListItemClick (ListView l, View v, int position, id dài), làm thế nào tôi phải kích hoạt/vô hiệu hóa cho mục danh sách cụ thể. Giả sử lấy mục đầu tiên trong ListView. Làm thế nào tôi có nghĩa vụ phải viết cho phép/vô hiệu hóa mã sau này - listview.getItemAtPosition (0). ? –
ngữ cảnh của bạnMenu sẽ hiển thị, khi bạn gọi phương thức showContextMenu(). Bạn sẽ kiểm tra mục của bạn, và nếu bạn cần hiển thị contextMenu bạn sẽ gọi showContextMenu() và theo cách khác, bạn sẽ không gọi nó. Vấn đề là gì? –
Trong phương thức onListItemClick (ListView l, View v, int position, long id), có parametr "int position". Đó là vị trí của mục được nhấp hiện tại của bạn. Bạn kiểm tra mục bằng getItemAtPosition (vị trí int) và làm điều gì đó ... –
Ngoài ra bạn có thể đăng ký lại listview của bạn mà sẽ gây phương pháp onCreateContextMenu
của bạn để thực hiện lại
ListView lv = (ListView) findViewById(R.id.lvExample);
registerForContextMenu(lv);
Và sau đó bạn có thể ẩn hoặc hiển thị các mục menu với wh ich từng là logic bạn muốn trong phương thức onCreateContextMenu
Tôi mua cái này. Tôi không nghĩ rằng rối tung lên với 'OnItemLongClickListener' là một ý tưởng hay. – Yeung
- 1. menu ngữ cảnh để xóa các mục trong listview
- 2. Cách xóa một mục menu ngữ cảnh cụ thể trong Zedgraph
- 3. menu ngữ cảnh jquery vô hiệu hóa các mục menu
- 4. Có thể thêm một số mục trong menu ngữ cảnh của android (menu hệ thống)
- 5. làm thế nào để kích hoạt menu ngữ cảnh cho mục listview không cho Headers Cột
- 6. Override menu ngữ cảnh màu sắc trong Android
- 7. Sao chép Menu ngữ cảnh để kiểm soát ListView
- 8. Thêm mục menu vào menu ngữ cảnh của cửa sổ chỉ dành cho loại tệp cụ thể
- 9. thêm mục menu vào menu ngữ cảnh mặc định
- 10. Làm cách nào để tạo biểu tượng cho các mục menu trong ListView của Android?
- 11. Listener Android miễn nhiệm menu ngữ cảnh
- 12. cách tắt một mục trong ListView
- 13. TabControl Menu ngữ cảnh
- 14. Tham gia các menu ngữ cảnh
- 15. Đặt tiêu đề của menu ngữ cảnh từ mục Listview được chọn
- 16. Tạo menu ngữ cảnh cho win32 API
- 17. Menu ngữ cảnh tab QTabWidget
- 18. Cách thêm mục menu vào menu ngữ cảnh nhấp chuột phải mặc định
- 19. Cách truy cập các mục menu ngữ cảnh của Windows shell?
- 20. Tôi có thể tắt tính năng cuộn menu ngữ cảnh trong VS2010 không?
- 21. Tùy chỉnh Menu ngữ cảnh trong WPF
- 22. Thêm menu ngữ cảnh tùy chỉnh vào thư mục \
- 23. Tôi có thể tùy chỉnh menu ngữ cảnh AvalonDock không?
- 24. tắt cảnh báo cụ thể trong gcc
- 25. Android: Cách tìm vị trí được nhấp từ menu ngữ cảnh
- 26. Cách lấy ID Android cho một mục menu trong Android?
- 27. Chọn tất cả các mục trong ListView
- 28. Qt QListView - menu ngữ cảnh?
- 29. PyQt và menu ngữ cảnh
- 30. android - chỉ mục cho ListView?
ghi đè lênPrepareContextMenu() và kiểm tra vị trí danh sách được chọn hiện tại có cờ boolean để xóa tất cả các mục khỏi menu = win. – Blundell
bạn có thể cụ thể hơn về điều này, tôi có nghĩa là tôi cần một mã mẫu để hiểu rõ ràng. Tôi không thể tìm ra cách để loại bỏ tất cả các mục từ trình đơn cho một mục danh sách SPECIFIC. –