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

+0

Нравится это: http://www.youtube.com/watch?v=w-s8MlzzN9U? :) – Eulante

+0

вы забыли @Override 'OnOptionsItemSelected' – Budius

ответ

1

Опечатка.

Не

public boolean OnOptionsItemSelected(MenuItem item) 

но

public boolean onOptionsItemSelected(MenuItem item) 

Начальная буква имени метода является строчной.

+0

«Иногда мне кажется, что я поднимаю руки вверх, я знаю, что могу рассчитывать на вас». -cit. Спасибо, 2 часа отладки теперь имеют смысл. – Eulante

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

+2

, затем создайте его, иначе вы не сможете вводить меню в свою деятельность. – waqaslam

+0

читайте это http://developer.android.com/guide/topics/ui/menus.html – waqaslam

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) 

< < На < < O в нижнем регистре !!

+0

Я сделал это так, но когда я нажимаю кнопку, ничего не появляется, она не входит в переключатель – Eulante

+0

, пожалуйста, обновите код – Intathep

+0

удалите Toast.makeText (context, item.getItemId(), Toast.LENGTH_SHORT) .show(); или изменить на Toast.makeText (контекст, String.valueOf (item.getItemId()), Toast.LENGTH_SHORT) .show(); если вы действительно хотите увидеть Id – Intathep

Смежные вопросы