2014-06-05 44 views
0

是否可以爲具有相同ID的多個文本視圖設置文本大小?我有他們與android:id:「@ + id/lbl」?其實我設置DP基於文件夾值/ dimen.xml爲同一個ID的多個文本視圖設置文本大小

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

第一TextView的只得到這樣的效果,但是TextView的其餘沒得到這樣的效果。讓我知道如何解決這個問題。

回答

1

因爲每個活動/片段/適配器都有自己的佈局(xml),所以您需要單獨執行此操作。在R.java中,他們將擁有自己的唯一編號。

android:textSize="24sp" 

每當你在XML中添加視圖,只需添加文本大小

+0

是的我知道如何設置佈局,但我練習從dimens.xml加載值 – user3172337

+1

android:textSize =「@ dimen/twenty_two」< - 你也可以做到這一點 – Deejaygeekout

0

你可以得到你的父視圖的所有TextViews。然後在循環中檢查它們的ID

+0

好主意,讓我嘗試.. – user3172337

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" /> 

這裏有兩個textviews具有相同的ID,和現在看到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(此十六進制當你第一次運行你的代碼時,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); 

}

這將工作。

相關問題