为具有相同ID的多个textview设置textsize

时间:2014-06-05 03:25:08

标签: android fonts textview set

是否可以为具有相同ID的多个textview设置文本大小?我有他们与android:id:“@ + id / lbl”?实际上我根据文件夹值/ dimen.xml设置了dp

TextView lbl=(TextView) findViewById(R.id.lbl);
lbl.setTextSize(dp);

第一个textview只能获得此效果,但textview的其余部分不会产生这种效果。让我知道如何解决这个问题。

3 个答案:

答案 0 :(得分:1)

您需要单独执行此操作,因为每个activty / fragment / adapter都有自己的布局(xml)。在R.java中,他们将拥有自己独特的数字。

   android:textSize="24sp"

每次在XML中添加视图时,只需添加文本大小

即可

答案 1 :(得分:1)

在android平台中,每个视图必须具有由" android:id"标识的唯一ID。视图属性。虽然你能够定义多个具有相同id但具有android第一声明的视图,并将其余视图保留为没有id。 让我们现在有一个例子:

 <TextView
    android:id="@+id/response_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="27dp"
    android:layout_toLeftOf="@+id/scan_format"
    android:text="TextView" />

<TextView
    android:id="@+id/response_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/response_text"
    android:layout_marginBottom="74dp"
    android:layout_toLeftOf="@+id/response_text"
    android:text="Trepeattet" />

这里有两个具有相同id的textview,现在看到R.java

    public static final int radio=0x7f05002f;
    public static final int response_text=0x7f050040;
    public static final int scan_button=0x7f05003c;
    public static final int scan_content=0x7f05003e;
    public static final int scan_format=0x7f05003d;
在R.java中,只有一个textview声明了它的id(当你第一次运行你的代码时,这个hex id是由平台编译器本身创建的。)

因此虽然应用程序在编译时或运行时没有产生任何错误,但是对于具有相同id的任何其他视图都不会做任何事情,除非是第一个,因为只有一个可用的引用属于第一个textview。

根据this帖子,您可以执行以下操作:

视图ID是普通整数,因此您可以只想要更改一组ID。例如:

int[] ids = { R.id.lbl1, R.id.lbl2, ... };
for (int id: ids) {
TextView lbl=(TextView) findViewById(id);
lbl.setTextSize(dp);

}

这样可行。

答案 2 :(得分:0)

您可以获取父视图的所有TextView。然后在循环中检查它们的ID

相关问题