2012-06-08 26 views
0

菜单没有显示在我的emulator.menu代码是在home.java类中实现的,充气器使用菜单但是没有在模拟器上显示。菜单inflater没有在模拟器中显示

@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.xmlres/menu,而不是res/layout

那么你显然应该返回true而不是返回super方法的结果。 您的代码应该是这样的:

@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 /菜单文件夹。