2009-12-21 34 views
7

tôi mở menu ngữ cảnh của tôi như thế này:làm thế nào để gọi menu ngữ cảnh

private OnClickListener optionsClickListener = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
    registerForContextMenu(v); 
    openContextMenu(v); 
    } 
}; 

Làm thế nào tôi có thể gọi

registerForContextMenu(v); 
openContextMenu(v); 

từ bên trong xử lý đơn thường xuyên của tôi ở đây:

public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()) 
    { 
    case OPTIONS: 
     registerForContextMenu(v); 
     openContextMenu(v); 
     return true; 

nơi Tôi không có View để vượt qua?

+1

Bạn đang cố gắng hiển thị ContextMenu từ một mục Trình đơn tùy chọn? –

+0

Vâng, đó là câu hỏi. – gdonald

+1

Điều này là hoàn toàn có thể, nó chỉ là câu hỏi ban đầu của bạn là khá không rõ ràng và không hiểu. Tôi ngạc nhiên rằng không ai trả lời câu hỏi này sau khi nhận xét đưa ra những gì bạn muốn khá rõ ràng. Khi mọi người gặp khó khăn khi hiểu câu hỏi của bạn, bạn nên chỉnh sửa câu hỏi, cũng như trả lời nhận xét. – Casebash

Trả lời

14

Đăng ký menu ngữ cảnh là khi bạn muốn cho phép người dùng mở bằng cách nhấp chuột dài. Nếu bạn muốn mở nó theo chương trình, bạn chỉ cần gọi openContextMenu. Để có được chế độ xem, bạn có thể sử dụng findViewById nếu bạn đã đặt id hoặc lưu dưới dạng thuộc tính trong lớp Activity của mình.

+0

Cảm ơn. Tôi đã làm việc đó. – gdonald

0

Bạn có this cũng là chế độ xem.

+0

Trong ngữ cảnh tôi mô tả, "this" là một Hoạt động chứ không phải là Chế độ xem. – gdonald

+1

Bạn đang làm gì để xem trong các phương pháp này? Chế độ xem mà bạn đang truyền vào không phải là chế độ xem chính của bạn, đó là chế độ xem có sự kiện, vì vậy nút hoặc bất kỳ thứ gì. – CaseyB

+0

onOptionsItemSelected() không cung cấp quyền truy cập vào Chế độ xem. Nó cung cấp quyền truy cập vào một MenuItem. Làm thế nào để tôi gọi registerForContextMenu() và openContextMenu() trong ngữ cảnh của onOptionsItemSelected(), nơi tôi chỉ được đưa ra một MenuItem, không phải là một View? Làm cách nào để có Chế độ xem hiện tại từ MenuItem? item.what? ? – gdonald

0

Có lẽ những gì bạn đang tìm kiếm thực sự là một submenu, nơi nó cho phép bạn bật lên menu phụ khi nhấp vào mục menu.

+0

Không, đó không phải là những gì tôi đang cố gắng làm gì cả. – gdonald

+0

Bất kỳ lý do nào bạn PHẢI bật một ContextMenu từ OptionMenu, thay vì hiển thị menu phụ; từ giao diện người dùng và mã, chúng trông gần như giống nhau. Nếu bạn THỰC SỰ PHẢI, bạn có thể vượt qua trong bất kỳ Chế độ xem nào, chẳng hạn như ImageView, TextView, Button, v.v. –

+0

Nhưng nó đã giúp tôi .. cảm ơn :) –

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