2012-05-05 17 views
0

使用以下我得到的菜單。但當菜單被選中時如何做出任何動作 任何人都可以幫助我。提前致謝。oncreateoptionsmenu的動作

public boolean OnCreateOptionsMenu(Menu menu){ 
    menu.add(1, 200, 0, "snapshot"); 
      menu.add("more"); 
      menu.add("exit"); 
    return super.onCreateOptionsMenu(menu); 
    } 

是否可以使用以下操作進行操作。但在使用佈局犯規負載以下

public boolean OnOptionsItemsSelected(MenuItem item){ 
    switch(item.getItemId()){ 
    case 200: setContentView(R.layout.main2); 
    return true; 
    } 
    return super.onOptionsItemSelected(item); 

} 

回答

3

步驟#1:重命名OnCreateOptionsMenu()onCreateOptionsMenu(),如Java是大小寫敏感的。

步驟#2:將其重命名爲OnOptionsItemsSelected()onOptionsItemSelected(),因爲Java區分大小寫。

+0

我已經嘗試過,但不工作 – radish

+0

@radish:它適用於其他成千上萬開發者。下面是一個示例:https://github.com/commonsguy/cw-android/tree/master/Menus/Menus – CommonsWare

+1

您錯過了在Item之後的'onOptionsItemSelected()'中刪除一個小寫's',這就是爲什麼他仍然收到錯誤。 – vvnraman

2

是的,你可以!我相信你只是打錯了功能名稱。 此代碼工作正常,我:

public class TestActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     menu.add(1, 200, 0, "snapshot"); 
     menu.add("more"); 
     menu.add("exit"); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case 200: 
       setContentView(R.layout.main2); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

當我在onOptionsItemSelected之前使用@Override時,我在eclipse中得到錯誤以移除註解 – radish

+1

@radish:這些方法需要在Activity的子類上實現。 – CommonsWare

+0

當@override被使用時,我得到以下錯誤 類型MjpegSample的onOptionsItemsSelected(MenuItem)方法必須覆蓋或實現一個超類型方法 – radish