18

我想在只有文本的操作栏中放置一个项目。我正在使用 ActionBarSherlock。我怎样才能做到这一点。一种是用文本定义图标。我不想那样做。是否可以从我的字符串资源中获取文本项?

4

4 回答 4

32

只是不定义

android:icon

该项目的 menu.xml 中的字段。

于 2012-10-05T05:52:35.137 回答
16

刚刚想通了,确保添加 android:showAsAction="always"

<item 
    android:id="@+id/menu_item"
    android:showAsAction="always"
    android:title="@string/menu_title" />
于 2014-01-31T08:52:17.520 回答
6

为了将来参考,我发现必须在命名空间和命名空间中定义showAsAction属性,以提供与不同Android版本的兼容性。因此,您的 menu.xml 文件应如下所示:http://schemas.android.com/apk/res/androidhttp://schemas.android.com/apk/res-auto

<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"
      tools:context="net.taptools.android.sportshistory.PlayerProfileActivity" >
<item android:id="@+id/action_settings"
    android:title="Statistics"
    app:showAsAction="always"
    android:showAsAction="always"/>
</menu>
于 2014-07-11T22:37:52.480 回答
1

如果你希望它是一个按钮,你可以创建一个菜单:

<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"
      tools:context="net.taptools.android.sportshistory.PlayerProfileActivity" >
<item android:id="@+id/action_settings"
    android:title="Statistics"
    app:showAsAction="always"
    android:showAsAction="always"/>
</menu>

但如果你只想要一个TextView你可以使用:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
    TextView tv = new TextView(this);
            tv.setText(getString(R.string.matchmacking)+"  ");
            tv.setTextColor(getResources().getColor(R.color.WHITE));
            tv.setOnClickListener(this);
            tv.setPadding(5, 0, 5, 0);
            tv.setTypeface(null, Typeface.BOLD);
            tv.setTextSize(14);
            menu.add(0, FILTER_ID, 1, R.string.matchmacking).setActionView(tv).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}

这只是做一个TextView.

于 2017-03-08T17:17:45.500 回答