2010-09-26 47 views
2

我使用自定義xml屬性作爲首選項。偏好從xml誇大。Android:PreferenceScreen的自定義Xml屬性

我設法創建和讀取EditTextPreference,ListPreference和CheckBoxPreference的自定義xml屬性,方法是創建自各個首選項類繼承的自定義類。

在類的構造函數,我可以讀取屬性,像這樣:

public class CustomTextPreference extends EditTextPreference { 
    public CustomTextPreference(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.PreferenceCustomAttrs); 
     x = a.getString(R.styleable.PreferenceCustomAttrs_x); 
     y = a.getString(R.styleable.PreferenceCustomAttrs_y); 
    } 
} 

我的問題是,我不能爲PreferenceScreen類做到這一點,因爲它是一個final類。所以我的問題是:有什麼方法可以讀取PreferenceScreen的自定義屬性?

回答

1

可能不是您正在使用的相同技術。但請記住,首選XML文件只是XML資源。您可以通過PreferenceActivitygetResources().getXml()獲取該文件的解析器。從那裏,你可以閱讀任何你想要的。

+0

謝謝你的回答!這將是一個選項,但是通過這種方法,自定義屬性不會是屬性類的成員。我將不得不維護手動映射(例如通過字典)從屬性到它的自定義屬性,我已經做了任何事情,並希望擺脫自定義屬性。 – thumbmunkeys 2010-09-27 19:10:43