Android 主菜单未在应用程序中显示
大家好,我的问题是菜单甚至没有显示出来,我尝试了以下方法:Android 主菜单未在应用程序中显示,android,xml,Android,Xml,大家好,我的问题是菜单甚至没有显示出来,我尝试了以下方法:app:showAsAction=“always”但没有帮助,然后我尝试更改tools:context=“.Main” 以下是我的完整代码: main_menu.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="htt
app:showAsAction=“always”
但没有帮助,然后我尝试更改tools:context=“.Main”
以下是我的完整代码:
main_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".Main">
<item
android:id="@+id/changeCityID"
android:title="@string/changeCity"
android:icon="@drawable/search"
android:orderInCategory="1"
app:showAsAction="always"/>
</menu>
验证是否实现了在主活动中选择的方法OnCreateOptions菜单和OnOptions项
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.changeCityID:
//doSomething
break;
}
return true;
}
您没有显示主活动代码。您的活动应该调用main_menu.xml文件。确保main_menu.xml位于菜单文件夹下。然后在您希望此菜单进入的活动(或您的应用程序屏幕)中,确保实现了类似的功能
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.changeCityID:
// Enter what you would like to do when user clicks on menu item
break;
}
将此行放在onCreate(..)上 调用Android菜单,实现菜单方法
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
请阅读“开发>API指南>用户界面>菜单”注意,OnCreateOptions菜单和OnOptions ItemSelected函数上方缺少“@Override”关键字。改变它,让我知道。如果它解决了你的问题,接受这个答案。
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.changeCityID:
//doSomething
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.changeCityID:
// Enter what you would like to do when user clicks on menu item
break;
}
invalidateOptionsMenu();
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}