14

Trong Hoạt động lớp, có phương pháp được gọi là registerForContextMenu(View view).Trình đơn ngữ cảnh & phương thức registerForContextMenu là gì()

Tài liệu android giải thích rằng phương pháp này được sử dụng để đăng ký trình đơn ngữ cảnh để hiển thị cho chế độ xem đã cho (nhiều chế độ xem có thể hiển thị menu ngữ cảnh).

  • "menu ngữ cảnh" có nghĩa là gì? Nó có nghĩa là nút menu vật lý hay cái gì?
  • Tôi cũng cần một số giải thích về phương pháp registerForContextMenu(View view), không rõ ràng đối với tôi khi chỉ đọc tài liệu trực tuyến.

Trả lời

10

Về cơ bản, trình đơn bật lên được hiển thị khi bạn bấm dài một số phần tử giao diện người dùng nhất định (thường là một mục trong một ListView).

Bạn nên xem phần Menus của Hướng dẫn dành cho nhà phát triển.

7

Đây là từ Android Developers: Menu -Android Developers

đơn Ngữ cảnh là một trình đơn thả nổi xuất hiện khi người dùng thực hiện một chặng đường dài-click vào một phần tử. Nó cung cấp các hành động ảnh hưởng đến nội dung hoặc khung ngữ cảnh đã chọn.

Hãy tưởng tượng rằng bạn muốn có một trình đơn conext trong một listview

//Constants for context menu options 
public static final int MENU_MARK = 1; 
public static final int MENU_REMOVE = 2; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    ... 
    ... 
    // Specify that your listview has a context menu attached 
    registerForContextMenu(getListView()); 
} 

// here you create the context menu 
@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
    ContextMenuInfo menuInfo) { 
    menu.add(Menu.NONE, MENU_MARK, Menu.NONE, "MARK"); 
    menu.add(Menu.NONE, MENU_REMOVE, Menu.NONE, "Remove"); 
} 

// This is executed when the user selects an option 
@Override 
public boolean onContextItemSelected(MenuItem item) { 
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
switch (item.getItemId()) { 
    case MENU_MARK: 
     mark_item(info.id); 
     return true; 
    case MENU_REMOVE: 
     delete_item(info.id); 
     return true; 
    default: 
     return super.onContextItemSelected(item); 
    } 
} 
Các vấn đề liên quan