Intereting Posts
Отрегулируйте ширину до половины экрана. Android google signin и кнопка входа в facebook выглядят совершенно иначе Как выровнять текст в верхней части TextView? Почему моя относительная компоновка занимает всю ширину экрана Vuforia Android SDK объяснил образцы? Recycler view Индекс массива outof bound Ошибка несоответствия при одновременном прокрутке SwipetoRefresh и повторной обработки ListFragment с пользовательским адаптером Получение / изменение кадров во время записи mp4 с помощью MediaRecorder Android, как вы ссылаетесь на новый класс из Lollipop RippleDrawable Как получить строку из выбранного элемента SimpleCursorAdapter? Обнаружение сбоя приложения в android Android Как я могу читать json-файл (текстовый файл) с SD-карты и отображать данные в textview «Диспетчер оконных сбоев» при отправке клавиши «Вниз» на Samsung Galaxy S Кодировка Base64 в Swift не будет декодироваться в Android OnActivityResult () не вызывается, когда активность запущена из фрагмента

Как получить атрибуты с пространством имен «андроид» в пользовательском TextView

В пользовательском TextView я пытаюсь получить значение text атрибута (например).

 TypedArray values = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.TextView); String text = values.getString(com.android.internal.R.styleable.TextView_text); 

Но я получаю сообщение об ошибке:

Пакета com.android.internal.R не существует

Итак, как получить атрибуты «по умолчанию» TextView?

Класс internal.R не отображается, поэтому вы можете читать их только через их методы доступа и только после того, как был вызван супер конструктор.

См. Источник TextView, чтобы узнать, как он работает внутри.

Если вы хотите иметь доступ к этим атрибутам «android», вы можете «переопределить» их: в объявлении декларируемого стиля, например.

 <attr name="android:padding"/> 

Тогда вы можете легко получить его таким образом:

 int padding = a.getInt(R.styleable.CustomView_android_padding, -1); 

Только для записи anwser вдохновлен исходным кодом макета TwoWayView, реализованным Lucas Rocha. Я думаю, что это хороший пример для анализа того, как реализовать пользовательские представления

Для доступа к ресурсу com.android.internal.R вы можете использовать

 Resources.getSystem().getIdentifier(name, defType, defPackage) 

Ссылка может быть полезна: