无法格式化操作栏标题

时间:2014-02-04 11:16:19

标签: android android-actionbar android-actionbar-compat

这可能是一个非常简单的问题,但目前我无法对其进行排序。

我的行动设置如下:

// get action bar
ActionBar actionBar = getSupportActionBar();

// set up the action bar layout
final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.actionbar_layout,null);

// apply layout
actionBar.setCustomView(actionBarLayout);

我尝试按如下方式设置操作栏标题:

  // setting action bar title
  actionBar.setTitle(getResources().getString(R.string.testing_title));

这正确应用了标题,问题是tests_title在字符串文件中的格式如下:

 <string name = "testing_title"><b>Testing</b>Testing</string>

所以第一个'测试'应该是粗体,第二个正常。问题是两者都没有胆量。有谁知道我应该在这做什么?

在我的操作栏自定义布局中,我有一个文本视图,我用它来显示标题,并在此处找到类似的答案:

  private void setActionBarTitle(String title, ActionBar ab)
    {
        View v = ab.getCustomView();
        TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle);
        titleTxtView.setText(title);
    }

然后我这样称呼它:

setActionBarTitle(getResources().getString(R.string.audioWalks_title), actionBar);
然而,这并没有产生任何结果。 如果有人可以得到任何帮助我会很感激。

3 个答案:

答案 0 :(得分:1)

错误必须在这里

// setting action bar title
actionBar.setTitle(getResources().getString(R.string.testing_title));

java.lang.String不能包含spans。尝试获取CharSequence参考。

actionBar.setTitle(getResources().getText(R.string.testing_title));

答案 1 :(得分:1)

正如我在评论中建议的那样,我建议使用Html.fromHtml(String)方法。您仍然可以将字符串保留在资源中,这就是为什么我说 decode ;)

所以我在android-developers找到了一些非常令人兴奋的东西。如果您没有使用格式化数字,则只需执行此操作:

private void setActionBarTitle(String title, ActionBar ab)
{
    View v = ab.getCustomView();
    TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle);
    titleTxtView.setText(Html.fromHtml(title));
}

答案 2 :(得分:0)

试试这个:

private void setActionBarTitle(String title, ActionBar ab)
    {
        View v = ab.getCustomView();
        TextView titleTxtView = (TextView) v.findViewById(R.id.actionBarTitle);
        titleTxtView.setTypeface(null, Typeface.BOLD);
        titleTxtView.setText(title);
    }