2012-06-08 3 views
0

Меню не отображается в моем коде эмулятора.menu реализовано в классе home.java, меню беспорядка инфлятора, но не отображается на эмуляторе.Меню не отображается в эмуляторе

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.home); 
} 

public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater Inflater = getMenuInflater(); 
    Inflater.inflate(R.layout.menu, menu); 
    return(super.onCreateOptionsMenu(menu)); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == R.id.logout) { 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.remove("logged"); 
     editor.commit(); 
     finish(); 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

ответ

1

Как Vipul Shah сказал, что вы должны изменить эту строку:

Inflater.inflate(R.layout.menu, menu); 

к

Inflater.inflate(R.menu.menu, menu); 

После этого - заменить ваш menu.xml в res/menu вместо res/layout.

Тогда вы должны, очевидно, вернуть true вместо того, чтобы возвращать результаты методов супер. Ваш код должен быть таким:

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

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
    case R.id.logout : 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.remove("logged"); 
     editor.commit(); 
     finish(); 
     return true; 
    default: return super.onOptionsItemSelected(item); 
} 
+1

thnx его рабочий тон .. :) – shitanshu

0

Изменить этот

Inflater.inflate(R.layout.menu, menu); 

Для этого

Inflater.inflate(R.menu.menu, menu); 

Поместите свой menu.xml в res/menu папка.

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