0

メニューがエミュレータに表示されません.メニューコードは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);
}

}

4

2 に答える 2

1

Vipul Shahが言ったように、この行を変更する必要があります。

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

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

その後 -の代わりにmenu.xmlをに置き換えます。res/menures/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);
}
于 2012-06-08T14:36:09.117 に答える
0

これを変える

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

これへ

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

menu.xml をres/menuフォルダーに配置します。

于 2012-06-08T14:36:25.383 に答える