Android中的自定义标题和setTitle

时间:2012-05-22 11:56:46

标签: android title

我创建了一个完美展示的简单自定义标题。但是我不确定为了让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。

2 个答案:

答案 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);        
}