Android: XML personalizzato Attributi per PREFERENCE
-
05-10-2019 - |
Domanda
I xml uso attributi personalizzati per le preferenze. Le preferenze sono gonfiati da XML.
Sono riuscito a creare e leggere gli attributi XML personalizzati per EditTextPreference, ListPreference e CheckBoxPreference con la creazione di classi personalizzate che ereditano dalla rispettiva classe di preferenza.
Nel costruttore della classe I in grado di leggere gli attributi in questo modo:
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);
}
}
Il mio problema è che non riesco a fare questo per la classe PREFERENCE, in quanto è una classe finale. Quindi la mia domanda è: C'è un modo posso leggere il attributi personalizzati di un PREFERENCE
Soluzione
Probabilmente non per le stesse tecniche che si sta utilizzando. Ricordate, però, che i file di preferenza XML sono solo risorse XML. È possibile ottenere un parser per il file tramite getResources().getXml()
dal PreferenceActivity
. Da lì, si può leggere quello che vuoi.