Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar Compat未显示应用程序图标_Android_Android Actionbar - Fatal编程技术网

Android ActionBar Compat未显示应用程序图标

Android ActionBar Compat未显示应用程序图标,android,android-actionbar,Android,Android Actionbar,我正在我的应用程序中设置兼容版本的ActionBar。现在我已经做到了: 导入android-support-v7-appcompat并将其添加到我的项目中 将应用程序主题设置为:theme.AppCompat 将活动扩展到ActionBarActivity 在此之后,我使用一种方法动态设置字幕: private final void setStatus(int resId) { ActionBar actionBar = getSupportActionBar(); act

我正在我的应用程序中设置兼容版本的ActionBar。现在我已经做到了:

  • 导入android-support-v7-appcompat并将其添加到我的项目中
  • 将应用程序主题设置为:theme.AppCompat
  • 将活动扩展到ActionBarActivity
在此之后,我使用一种方法动态设置字幕:

private final void setStatus(int resId) {
    ActionBar actionBar = getSupportActionBar();
    actionBar.setSubtitle(resId);
}

private final void setStatus(CharSequence subTitle) {
    ActionBar actionBar = getSupportActionBar();
    actionBar.setSubtitle(subTitle);
}
测试应用程序时,字幕不会出现。如果我加上:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);

然后字幕出现,但应用程序图标消失。在显示字幕时,如何保持应用程序图标不变?

这就是解决问题的方法:

/**Resolves the issue, shows the app icon*/
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled (true);

显示选项是位字段,因此您应该能够同时启用多个(使用OR运算符),如下所示:

getSupportActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
或者,要仅添加一个值而不影响其他字段,请调用具有位掩码的版本:

getSupportActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_TITLE,
    ActionBar.DISPLAY_SHOW_TITLE);

使用getSupportActionbar而不是actionbar

Actionbar actionbar = getSupportActionBar()
actionbar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
actionbar.setIcon(YOUR ICON); 

好的,上面所有的答案看起来都很相似,但有一些细微的差别,除了这个组合,没有一个对我有用

final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_HOME);
actionBar.setDisplayShowHomeEnabled (true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setIcon(R.drawable.rn_logo_icon);
请注意,如果您使用的是
AppCompat
主题,则此修复程序无效