包括一个TextView和覆盖文本
问题描述:
我有一个TextView我为我的菜单页面的标题中使用:包括一个TextView和覆盖文本
<TextView
android:id="@+id/menuTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Menu"
android:textColor="@color/white"
android:textSize="25sp"
android:textStyle="bold" />
现在我需要在每个子菜单上相同的颜色,大小和样式一个TextView我应用程序。而不是将整个TextView粘贴到每个布局,只是更改每个布局中的文本,我认为我会用TextView制作一个布局,并将其包含在每个子菜单视图中,仅覆盖文本。
我的代码如下所示:
/layout/menutextview.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menuTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/default"
android:textColor="@color/white"
android:textSize="25sp"
android:textStyle="bold" />
的包括每个布局XML文件试图重写文本属性:
<include layout="@layout/menutextview" android:text="@string/menu" />
<include layout="@layout/menutextview" android:text="@string/settings" />
但默认文本显示在每个地方。任何人都有问题的可能是什么?
问候, 马蒂亚斯
答
欢迎StackOverflow的;)
包括不能被用来 “overrride” 孩子的特性。它不知道你将包括哪种类型的布局,它只会膨胀它并将其添加到当前布局。
要动态更改文本,您需要在代码中执行此操作。
final TextView textView1 = (TextView) findViewById(R.id.menuTextView);
textView1.setText(R.string.menu);
final TextView textView2 = (TextView) findViewById(R.id.settingsTextView);
textView2.setText(R.string.settings);
答
尝试使用风格,并有TextView的实现这种风格。这将使您更容易在视图中保持一致性。
这是您可以用于解决此问题的最简单易行的解决方案。 – 2012-02-03 10:35:24
是否有没有自定义字段,我可以将任何我想要从xml传递到代码?像这样: 然后在代码中我可以去((TextView)findViewById(R.id.menuTextView))。setText(getCustom )); –
Mattias
2012-02-03 13:11:35
我想和你一样,根据文档,你只能覆盖layout(和id)属性。 – viplezer 2013-06-07 12:35:36