0

我有一个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;

}

}

啊。

4

3 回答 3

1

有一个错字。

不是

public boolean OnOptionsItemSelected(MenuItem item)

public boolean onOptionsItemSelected(MenuItem item)

方法名的首字母小写。

于 2013-03-05T16:18:29.160 回答
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)

在 <<<< o 小写!!请

于 2013-03-05T15:56:32.130 回答
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.

有关更多信息,请阅读

于 2013-03-05T15:30:17.780 回答