我正在使用App Bar在我的Android应用中进行导航。我正在使用xml菜单文件。在设计视图中,图标将显示,如第一张图片中所示:
但是当我在模拟器中构建并启动应用程序时,appBar会显示图标,如下所示:
Android emulator without the icon
我也在物理设备上对此进行了测试,我得到了完全相同的问题。
这是我的menu.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">
<!-- Top bar navigation menu-->
<!-- "Show EPA scale", should appear as action button if possible -->
<item
android:id="@+id/showEpaScale"
android:icon="@mipmap/ic_wb_sunny_black_24dp"
android:title="@string/epaScaleUri"
app:showAsAction="ifRoom"/>
</menu>
这是我的MainActivity:
package com.weebly.stevelosk.uv_buddy;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.support.annotation.ArrayRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
private TextView resultTextView;
private TextView UV_indexDescriptionTextView;
private EditText enterZipCodeEditText;
private Button getUV_withZipCodeButton;
private Button getUV_withLocationButton;
private Toolbar mActionBar;
private Integer[] uviArray;
private String TAG = "Main Activity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(mActionBar);
...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.showEpaScale:
// User chose the "Settings" item, show the app settings UI...
// Do stuff
return true;
default:
return true;
}
}
我错过了什么吗?我已经按照Android开发人员培训(设置应用程序栏)和(添加和处理操作)中的说明进行操作。我也尝试在stackoverflow上搜索这个问题的几个变体,但我找到的结果都没有真正符合我的问题。我尝试使用一个已知的好图标&#34;相反,它也出现在设计视图中,但不是在我在模拟器中编译和运行时。
感谢您的帮助。
答案 0 :(得分:1)
您还需要覆盖onCreateMenuInflater
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.game_menu, menu);
return true;
}