更改自定义操作栏标题

4
我正在使用自定义布局来使操作栏标题居中。
  ActionBar actionBar = getActionBar(); 
  actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
  actionBar.setCustomView(R.layout.action_bar);

这里的action_bar是一个简单的线性布局,其中包含一个TextView。

我的问题是,我需要每个活动都有不同的名称,并且我需要通过编程方式更改主题。因此,我正在尝试类似于以下方式:

private void setActiobarTitle(String title)
{
   LayoutInflater inflator  = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   View v = inflator.inflate(R.layout.action_bar, null);
   TextView titleTxtView = (TextView) v.findViewById(R.id.actionbarTitle);
   titleTxtView.setText(title);
}

在调试时,TextView被找到并初始化,一切似乎都很好,但标题没有改变。 可以有人告诉我似乎存在什么问题吗?


1
你在哪里调用这个方法? - kai
1个回答

21

请按以下方式修改setActionbarTitle()

 private void setActiobarTitle(String title)
 {

    View v = getActionbar().getCustomView();
    TextView titleTxtView = (TextView) v.findViewById(R.id.actionbarTitle);
    titleTxtView.setText(title);
 }

我在这行代码上遇到了空指针异常。TextView titleTxtView = (TextView) v.findViewById(R.id.actionbarTitle); 有什么帮助吗? - dsharew
@user2412816,你有一个名为actionbarTitle的视图吗? - SathMK
@SathMK 我的是 tab_title,我已经更改了它。 - dsharew
1
使用actionBar.setDisplayShowCustomEnabled(true)启用ActionBar中的自定义视图。 - SathMK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接