Android 如何更改操作栏中文本的背景?

Android 如何更改操作栏中文本的背景?,android,background,android-actionbar,contextual-action-bar,Android,Background,Android Actionbar,Contextual Action Bar,我有一个上下文操作栏,当从列表视图中选择元素时,它会出现 看起来像这样 Sample Text实际上是一个按钮,它可以单击icon=“@null”和title=“Sample Text”,在单击时可以执行一些操作。如何将此按钮的背景更改为另一种颜色,使其更直观,实际上是一个按钮而不是一些文本 (额外信息) 菜单通过一个XML膨胀,这是下面的菜单 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="htt

我有一个上下文操作栏,当从
列表视图
中选择元素时,它会出现

看起来像这样

Sample Text
实际上是一个按钮,它可以单击
icon=“@null”
title=“Sample Text”
,在单击时可以执行一些操作。如何将此按钮的背景更改为另一种颜色,使其更直观,实际上是一个按钮而不是一些文本

(额外信息) 菜单通过一个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">
    <item
        android:id="@+id/menu_sample_text"
        android:icon="@null"
        android:orderInCategory="100"
        android:title="Sample Text"
        app:showAsAction="ifRoom|withText"/>
</menu>

您可以创建自己的布局,并将其设置为ActionBar视图。在该布局中,您的按钮可以具有您想要的任何样式。以下是我在我的应用程序中执行此操作的方式:

final ActionBar abar = getActionBar();
View viewActionBar = getLayoutInflater().inflate(R.layout.action_bar_layout, null); 
ActionBar.LayoutParams params = new ActionBar.LayoutParams( ActionBar.LayoutParams.WRAP_CONTENT,  ActionBar.LayoutParams.MATCH_PARENT,  Gravity.CENTER);
actionBarTitleTV = (TextView) viewActionBar.findViewById(R.id.actionbar_textview);

abar.setCustomView(viewActionBar, params);
abar.setDisplayShowCustomEnabled(true);
abar.setDisplayShowTitleEnabled(false);
abar.setDisplayHomeAsUpEnabled(true);
abar.setIcon(R.color.transparent);
abar.setHomeButtonEnabled(true);

对答复进行向下检查,但不说明原因或提供更好的答复是没有帮助的。你的回答与问题无关。再读一遍;)虽然它可以工作,但我一直在寻找一些内置的方法来完成它。现在创建一个完全定制的ActionBar太多了!但是谢谢你!没问题。不过我得告诉你这没那么麻烦。唯一的不便之处是,为了更新操作栏的文本,您必须执行(TextView)viewActionBar.findViewById()以获取TextView并设置新文本。除此之外,几乎是一样的。祝你好运
final ActionBar abar = getActionBar();
View viewActionBar = getLayoutInflater().inflate(R.layout.action_bar_layout, null); 
ActionBar.LayoutParams params = new ActionBar.LayoutParams( ActionBar.LayoutParams.WRAP_CONTENT,  ActionBar.LayoutParams.MATCH_PARENT,  Gravity.CENTER);
actionBarTitleTV = (TextView) viewActionBar.findViewById(R.id.actionbar_textview);

abar.setCustomView(viewActionBar, params);
abar.setDisplayShowCustomEnabled(true);
abar.setDisplayShowTitleEnabled(false);
abar.setDisplayHomeAsUpEnabled(true);
abar.setIcon(R.color.transparent);
abar.setHomeButtonEnabled(true);