Intereting Posts
Объявление активности в AndroidManifest.xml Кнопка возврата в Actionbarsherlock не возвращается Связывание двух представлений NumberPicker с onValueChanged приводит к непредсказуемым сбоям Настройка цвета фона для просмотра диаграммы Achartengine Использование параллельного использования Android Как получить событие клика в тексте маркера Как я могу передавать данные на рынок Android с использованием новой схемы на хром? Android getMeasuredHeight возвращает неправильные значения! Xamarin Android: System.IO.Compression.ZipFile.ExtractToDirectory Сбой в режиме выпуска Звук загрузки Soundpool Компонент имени «OMX.qcom.audio.decoder.aac» уже существует, игнорируя этот Какая версия Apache HttpClient используется в Android 4.2.2 SDK? Android-добавление вида к макету, заставляя макет находиться перед ActionBar Сводка обновления для PreferenceActivity Разрешение отклонено (отсутствует разрешение INTERNET?): Но предоставляется разрешение Как мы можем сделать макет таблицы для прокрутки в обоих направлениях (по горизонтали, по вертикали)

Создание экземпляра внутреннего класса (Предпочтение) в XML-файле

Когда вы хотите получить доступ к настраиваемому представлению в файле layout.xml , у вас есть два варианта:

  1. Представление – это собственный класс. Затем вы делаете <package.name.MyView android:layout_width= ... />
  2. Представление – это внутренний класс: <view class="package.name.OuterClass$MyView" android:layout_width= ... />

Теперь я хочу сделать то же самое внутри <PreferenceScreen> . Первый способ работает хорошо, но я хотел бы поместить все пользовательские классы Preference в свою PreferenceActivity. Я попробовал <Preference class="package.name.OuterClass$MyPreference" ... /> (также с '.' Вместо '$'), а также <package.name.OuterClass.MyPreference ... /> , но Оба не удалось.

У кого-нибудь есть идея?

Solutions Collecting From Web of "Создание экземпляра внутреннего класса (Предпочтение) в XML-файле"

Когда речь идет о раздувании Views , LayoutInflater ищет LayoutInflater «вид» -> «класс»:

 View createViewFromTag(View parent, String name, AttributeSet attrs) { if (name.equals("view")) { name = attrs.getAttributeValue(null, "class"); } ... 

Предпочтение PreferenceInflater не подходит, так что это относится к «классу».

Он использует отражение в методе createItem() и, вероятно, поэтому первый случай работает на вас.