2017-04-27 74 views
2

我使用下面的佈局我的菜單如何改變AppCompatButton菜單項文本

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 

    <item android:id="@+id/button" 
     android:title="off" 
     app:showAsAction="ifRoom" 
     app:actionViewClass="android.support.v7.widget.AppCompatButton" 
     tools:text="OFF" 
     android:textColor="@android:color/white"/> 
</menu> 

似乎沒有要設置文本的按鈕,一個明顯的方式。以下兩行我添加沒有導致任何可見文本被添加到按鈕。

tools:text="OFF" 
android:textColor="@android:color/white" 

編輯:

需要明確的是,這個菜單項,但動作視圖類是AppCompatButton,我想設置文本。

+0

你說的是按鈕或菜單? –

+0

這是一個菜單項,但操作視圖類是AppCompatButton。 –

回答

1

您可以從MenuItem獲得行動來看,有必要進行修改:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuItem menuItem = menu.findItem(R.id.button); 
    AppCompatButton button = (AppCompatButton) menuItem.getActionView(); 
    button.setText("My Button"); 
    return super.onPrepareOptionsMenu(menu); 
} 

enter image description here

+0

看起來像這樣也可以在'onCreateOptions'方法中使用 –

+0

它會,但是'onCreateOptionsMenu()'用於創建一個菜單,'onPrepareOptionsMenu()'用於準備(更新)菜單。前者將被調用一次,後者可能會根據菜單是否被更改而被調用多次。 – azizbekian