2010-07-02 147 views
1

是否有一種簡單的方法從Java類定義中的xml項目獲取屬性值?我在尋找這樣的事情:Android:從XML項目獲取屬性值

//在XML佈局:

<TextView android:id="@+id/MyXMLitem" android:textColor="#000000" /> 

//在Java的類定義

String some_text_color; 
some_text_color = R.id.MyXMLitem.attr.textColor; // I'd like this to return "#000000" 

我知道你可以抓住類似的XML從轉換屬性對象使用getter/setter像View.getText()...我只是想知道是否有辦法從項目本身抓取xml屬性。

回答

1

視圖將XML值存儲到它們的構造函數的類級別變量中,所以一旦創建了佈局,就不可能從對象本身獲取值。

如果您搜索AttributeSet(這是用於將XML佈局值傳遞給構造函數的對象),則可以在https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/View.java 的View對象的源代碼中看到此內容。

+0

謝謝Al - 我不確定是否有原生的Android功能,可以從佈局文件中直接獲取xml屬性值。現在我明白了! – dhulihan 2010-07-02 07:00:27

1
<TextView android:id="@+id/MyXMLitem" android:textColor="#000000" /> 

您可以使用getCurrentTextColor()

TextView tv = (TextView)findViewbyId(R.id.MyXMLitem); 

String color = Integer.toHexString(tv.getCurrentTextColor()); 

它返回FF000000,而不是#000000雖然。

+0

非常酷,這是我正在尋找的實現之一。 – dhulihan 2010-07-02 06:56:21

1

您可以使用XmlResourceParser直接從XML資源讀取數據。

+0

感謝您的回答!正是我需要的:-) – dbm 2011-01-25 07:39:08