2013-03-05 146 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