【发布时间】:2014-04-28 12:59:41
【问题描述】:
我需要在 ActionBar 中实现一个 TextView。此 TextView 显示蓝牙连接的状态,因此它将根据此状态进行更新。
我不是在谈论更改 ActionBar 的标题,而是添加一个 textview f.e.在标题下方或右侧。
目前,我所做的是在 menu.xml 中创建一个项目:
<item
android:id="@+id/statusTextview"
android:actionViewClass="android.widget.TextView"
android:showAsAction="ifRoom"
android:title="Disconected" />
然后在mainActivity上添加:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.bluetooth, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
final MenuItem menuItem = menu.findItem(R.id.statusTextview);
tvStatus = (TextView) menuItem.getActionView();
return super.onPrepareOptionsMenu(menu);
}
但它不能正常工作。第一次应该显示Disconnected 状态并且不显示任何内容。然后当状态改变并且文本视图必须更新时,它会抛出一个NPE。
【问题讨论】:
-
这是一个使用 XML 布局的答案:TextView on Action Bar
标签: android menu bluetooth android-actionbar