【问题标题】:How to change AppCompatButton menu item text如何更改 AppCompatButton 菜单项文本
【发布时间】:2017-04-27 00:16:51
【问题描述】:

我的菜单使用以下布局

<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,我想为其设置文本。

【问题讨论】:

  • 你说的是按钮还是菜单?
  • 嗯,它是一个菜单项,但动作视图类是 AppCompatButton。

标签: java android android-view menuitem android-menu


【解决方案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);
}

【讨论】:

  • 看起来这也适用于onCreateOptions方法
  • 会的,但onCreateOptionsMenu() 用于创建菜单,onPrepareOptionsMenu() 用于准备(更新)菜单。前者会被调用一次,后者可能会被调用多次,具体取决于菜单是否改变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
相关资源
最近更新 更多