2010-09-26 3 views
2

Я использую пользовательские атрибуты xml для настроек. Предпочтения завышены от xml.Android: Пользовательские атрибуты Xml для PreferenceScreen

Мне удалось создать и прочитать пользовательские атрибуты xml для EditTextPreference, ListPreference и CheckBoxPreference, создав пользовательские классы, которые наследуются от соответствующего класса предпочтений.

В конструкторе класса я могу читать атрибуты так:

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, как это конечный класс. Поэтому мой вопрос: есть ли способ прочитать пользовательские атрибуты PreferenceScreen?

ответ

1

Возможно, не по тем же методам, которые вы используете. Помните, однако, что XML-файлы предпочтений - это просто ресурсы XML. Вы можете получить парсер для файла через getResources().getXml() с вашего PreferenceActivity. Оттуда вы можете читать все, что захотите.

+0

Благодарим вас за ответ! Это был бы вариант, однако при таком подходе пользовательские атрибуты не были бы членами класса свойств. Мне пришлось бы поддерживать ручное сопоставление (например, через словарь) из свойства в его пользовательские атрибуты, которые я уже все равно и хотел избавиться от пользовательских атрибутов. – thumbmunkeys

Смежные вопросы