0

我有一個上下文操作欄,當從ListView的元素被選中時出現。如何更改操作欄中文本的背景?

它看起來像這樣enter image description here

Sample Text實際上是一個按鈕,icon="@null"title="Sample Text",點擊後,將做一些東西。如何將此按鈕的背景更改爲另一種顏色,以便它更直觀,它實際上是一個Button而不是一些文本?

(額外的信息) 菜單充氣雖然一個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> 

回答

0
You can set your own layout on the 
action bar and then do whatever you want with the layout. 

    ActionBar ab = getActionBar(); 
    if (ab != null) { 

     LayoutInflater inflater = getLayoutInflater(); 
     View v = inflater.inflate(R.layout.home_actionbar, null); 
     ab.setCustomView(v); 
    } 

    // Keep a reference to the view so that you can manipulate the controls. 
+0

到目前爲止,這麼好。以及如何更改背景? – RafaelC

+0

對回覆進行下調無需評論爲什麼或提供更好的回覆沒有幫助。 – mjstam

+0

你的答案與問題無關。再讀一遍;) – RafaelC

0

這個菜單可以使自己的佈局,並將其設置爲動作條視圖。在這種佈局中,你的按鈕可以有你想要的任何風格。這是我如何在我的應用程序中執行此操作:

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); 
+0

雖然它的工作原理,我正在尋找一些內置的方式來做到這一點。創建完全自定義的ActionBar現在太多了!但是謝謝你! – RafaelC

+0

沒問題。雖然我可以告訴你,這不是一件麻煩事。唯一不便的是,爲了更新操作欄的文本,您必須執行(TextView)viewActionBar.findViewById()以獲取TextView並設置新文本。除此之外,它幾乎是一樣的。祝你好運! – Anonymous