我希望我的应用程序有一个工具栏,其中有两个图标,一个用于工具栏左侧的“设置”(单击“SettingsActivity”时),另一个用于右侧的用户个人资料。我使用下面的代码,但遗憾的是工具栏或溢出部分中没有显示任何图标。任何建议都表示赞赏。
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
toolbar = UiUtils.findView(this, R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
// Remove application name from toolbar
getSupportActionBar().setDisplayShowTitleEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main_action_bar, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
return super.onOptionsItemSelected(item);
}
}
main_Action_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xmls="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools"
>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
app:showAsAction="always"
android:title="Settings"
android:visible="true"
android:icon="@drawable/ic_settings_action_bar" />
<item
android:id="@+id/action_profile"
android:orderInCategory="101"
app:showAsAction="always"
android:title="Profile"
android:icon="@drawable/ic_profile_action_bar" />
</menu>
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style
答案 0 :(得分:1)
将setHasOptionsMenu(true)
添加到您的onCreate
和
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_Action_bar, menu);
return true;
}
答案 1 :(得分:1)
还应覆盖Activity
的{{3}}:
protected boolean onCreateOptionsMenu(android.view.Menu) {
getMenuInflater().inflate(R.menu.main_Action_bar, menu);
return true;
}
要对菜单点击覆盖做出反应:onCreateOptionsMenu(android.view.Menu)
。
答案 2 :(得分:0)
经过一番调查后发现我应该编辑 menu_action_bar.xml 。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
.
.
</menu