我创建了一个完美展示的简单自定义标题。但是我不确定为了让setTitle方法发挥其魔力而给我的TextView提供什么id。
我的第一个选择是@android:id / title但是没有用。
实施例 我已经在xml中定义了一个自定义标题布局并将其添加到我的活动中。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent" >
<ImageView
android:id="@+id/logo"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:scaleType="centerInside"
android:onClick="home"
android:src="@drawable/logo" />
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:textSize="18dp"
android:textStyle="bold"
android:layout_centerVertical="true"
android:text="TextView" />
</RelativeLayout>
TextView现在是“标题”容器。我想要的是清单中的android:label值自动放入这个新标题TextView。
IE中。默认方法setTitle必须将此值添加到某个已定义的视图ID中 - 我只需要该ID。
答案 0 :(得分:2)
setTitle设置活动的标题,它与TextView无关 你需要使用setText()来设置TextView的文本:
((TextView)findViewById(R.id.text_view_id))。setText(“TextView text”);
编辑:检查此解决方案 - &gt; how to set custom title bar TextView Value dynamically in android?
答案 1 :(得分:1)
我必须使用自定义标题创建类似的功能。我非常怀疑你能否通过匹配一个id来做到这一点,如果Android允许这将是一个巨大的安全漏洞。我做的是扩展Activity,然后以类似......
的方式覆盖setTitle方法TextView mCustomTitle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
mCustomTitle = (TextView)findViewById(R.id.title);
}
@Override
public void setTitle(CharSequence title) {
//you can override the other setTitle as well if you need it
mCustomTitle.setText(title);
}