2013-03-05 147 views
0

我有OptionMenu在我的activity裏面,但是當我選擇一個選項時,它什麼也不顯示。我找到了一些教程,但它們顯示了我已經做了什麼。哪裏不對? 謝謝你的回覆。OptionMenu不顯示任何東西

這是目前的代碼:

public class Listino extends TabActivity 
{ 
    final Context context = this; 

public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 
    deleteFile("Ordinazioni.txt"); 
    setContentView(R.layout.show_listino); 
    TabHost tabHost = getTabHost(); 

    //Primi 
    Intent intentPrimi = new Intent().setClass(this, Primi.class); 
    TabSpec tabSpecPrimi = tabHost 
      .newTabSpec("Primi") 
      .setIndicator("Primi") 
      .setContent(intentPrimi); 

    //Secondi 

    Intent intentSecondi = new Intent().setClass(this, Secondi.class); 
    TabSpec tabSpecSecondi = tabHost 
      .newTabSpec("Secondi") 
      .setIndicator("Secondi") 
      .setContent(intentSecondi); 

    // Dolci 

    Intent intentDolci = new Intent().setClass(this, Dolci.class); 
    TabSpec tabSpecDolci = tabHost 
      .newTabSpec("Dolci") 
      .setIndicator("Dolci") 
      .setContent(intentDolci); 

    // Pizze 

    Intent intentPizze = new Intent().setClass(this, Pizze.class); 
    TabSpec tabSpecPizze = tabHost 
      .newTabSpec("Pizze") 
      .setIndicator("Pizze") 
      .setContent(intentPizze); 

    // Bevande 

    Intent intentBevande = new Intent().setClass(this, Bevande.class); 
    TabSpec tabSpecBevande = tabHost 
      .newTabSpec("Bevande") 
      .setIndicator("Bevande") 
      .setContent(intentBevande); 

    // Contorni 

      Intent intentContorni = new Intent().setClass(this, Bevande.class); 
      TabSpec tabSpecContorni = tabHost 
        .newTabSpec("Contorni") 
        .setIndicator("Contorni") 
        .setContent(intentContorni); 

    tabHost.addTab(tabSpecPrimi); 
    tabHost.addTab(tabSpecSecondi); 
    tabHost.addTab(tabSpecPizze); 
    tabHost.addTab(tabSpecDolci); 
    tabHost.addTab(tabSpecBevande); 



} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
     MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.menu.opzioni_menu, menu); 
     return true; 
} 

public boolean OnOptionsItemSelected(MenuItem item) 
{ 

    Toast.makeText(context, item.getItemId(), Toast.LENGTH_SHORT).show(); 

    switch (item.getItemId()) 
    { 
     case R.id.fineordinazione: 
      Intent intent = new Intent(context, AggiungiProdotto.class); 
      startActivity(intent); 

      return true; 

     case R.id.modificaordinazione: 
      break; 

    } 
    return false; 

} 

}

Aaaw。

+0

以您的母語(!= en)命名變量使我每次都會咯咯地笑。 – poitroae 2013-03-05 15:24:19

+0

像這樣:http://www.youtube.com/watch?v=w-s8MlzzN9U? :) – Eulante 2013-03-05 15:25:45

+0

你忘了@Override'OnOptionsItemSelected' – Budius 2013-03-05 15:29:39

回答

1

有一個錯字。

public boolean OnOptionsItemSelected(MenuItem item) 

public boolean onOptionsItemSelected(MenuItem item) 

方法名的首字母爲小寫字母。

+0

「有時候我覺得我的手放在空中,我知道我可以依靠你。」-cit。 謝謝,2小時的調試現在已經有了意義。 – Eulante 2013-03-05 16:25:08

0

你應該通過getMenuInflater()來擴充菜單,而不是佈局。

變化:

menuInflater.inflate(R.layout.opzioni_menu, menu); 

要這樣:

menuInflater.inflate(R.menu.opzioni_menu, menu); //use menu, not layout 

您應該使用R.menu.bla_bla_bla而不是R.layout.bla_bla_bla

欲瞭解更多信息,請閱讀this

+0

我沒有任何menu.opzioni_menu – Eulante 2013-03-05 15:32:28

+2

然後創建一個,否則你不能注入菜單到你的活動。 – waqaslam 2013-03-05 15:32:53

+0

請閱讀http://developer.android.com/guide/topics/ui/menus。html – waqaslam 2013-03-05 15:34:07

0

創建資源opzioni_menu.xml /菜單/(如果你沒有菜單文件夾,創建一個)

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/fineordinazione" android:title="fineordinazione"/> 
    <item android:id="@+id/modificaordinazione" android:title="modificaordinazione"/> 
</menu> 

然後更改

menuInflater.inflate(R.layout.opzioni_menu, menu); 

menuInflater.inflate(R.menu.opzioni_menu, menu); 

祝你好運希望這個幫助!

編輯

public boolean OnOptionsItemSelected(MenuItem item) 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 

在< < < <ö小寫!!請

+0

我已經這樣做了,但是當我按下按鈕時什麼也沒有出現,它沒有進入開關 – Eulante 2013-03-05 15:59:40

+0

請更新您的代碼 – Intathep 2013-03-05 16:03:28

+0

刪除Toast.makeText(context,item.getItemId(),Toast.LENGTH_SHORT).show(); 或更改爲Toast.makeText(context,String.valueOf(item.getItemId()),Toast.LENGTH_SHORT).show();如果你真的想看到Id – Intathep 2013-03-05 16:08:05