OptionMenu没有显示任何内容

时间:2013-03-05 15:22:58

标签: android optionmenu

OptionMenu内有activity,但是当我选择一个选项时,它什么都没显示。我找到了一些教程但是他们展示了我已经做过的事情。怎么了? 谢谢你的回复。

这是目前的代码:

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。

3 个答案:

答案 0 :(得分:1)

有一个错字。

public boolean OnOptionsItemSelected(MenuItem item)

public boolean onOptionsItemSelected(MenuItem item)

方法名称的首字母是小写。

答案 1 :(得分: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

答案 2 :(得分:0)

在res / menu /中创建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)

On&lt;&lt;&lt;&lt; o小写!!请