1. 程式人生 > >Android控制元件動態設定style的問題

Android控制元件動態設定style的問題

        前面做專案因為裡面的佈局大多是JAVA程式碼裡動態生成的,統一樣式時就遇到了如何 在程式碼中動態引用style檔案的問題,上網查了很多資料,都沒得一個好點的解決方案,大多是叫一個屬性一個屬性的設定。當然這樣也可以實現想要的功能, 不過達不到統一樣式的目的,思來想去,最終找到一個方法 可以讓程式碼中動態生成的控制元件照樣引用XML中的STYLE樣式。看起來有些取巧的意思,不過能達到目的,如果各位大神有其他更好的方法 麻煩回覆讓我也學習下。

        好吧,廢話不多說,直接講我的方法:

        比如,我在程式碼中要動態 設定一個Button按鈕,要引用styles.xml中的一個統一的Button樣式,我先在layout資料夾中建一個叫button.xml的檔案做為所有這種樣式Button的一個公共檔案XML中程式碼如下:

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    style="@style/btn"
/>

JAVA程式碼中要動態產生這種樣式的Button使用時就可以用Button button = (Button) getLayoutInflater().inflate(R.layout.button, null).findViewById(R.id.button);這種方法 來獲取一個新的Button物件,這個button的例項樣式就能直接是XML中要統一使用的了。

      其他控制元件要動態產生並使用styles.xml中樣式時就依次類推了。