2012-12-01 28 views
0

我需要在oncreate方法中打開上下文菜單。 我做什麼:如何編程打開上下文菜單?

public class MainActivity extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     cont = new CustomViewContainer(this); 
     setContentView(cont); 

     this.openContextMenu(cont); 
    } 
    @Override 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
    { 
     super.onCreateContextMenu(menu, v, menuInfo); 
     menu.setHeaderTitle("Select"); 
     menu.add(0, v.getId(), 0, "a"); 
     menu.add(0, v.getId(), 0, "b"); 
     menu.add(0, v.getId(), 0, "c"); 
    } 
} 

不過,所以我不看菜單。請幫助!

回答

2

按照the openContextMenu(View) documentation,你必須調用registerForContextMenu(View)第一:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    cont = new CustomViewContainer(this); 
    setContentView(cont); 

    registerForContextMenu(cont); 
    openContextMenu(cont); 
} 
+0

我看到異常:android.view.WindowManager $ BadTokenException:由造成無法添加窗口 - 令牌無效無效;你的活動正在運行? – Leo

+1

哦,只需添加onWindowFocusChanged,一切正常 – Leo

+0

在哪裏添加onWindowFocusChanged? @Leo –