Cómo obtener atributos con el espacio de nombres "android" en TextView personalizado

En TextView personalizado estoy intentando obtener el valor de un atributo de text (por ejemplo).

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

Pero recibo este mensaje de error:

Paquete com.android.internal.R no existe

Entonces, ¿cómo recuperar los atributos "predeterminados" de TextView?

La clase internal.R no es visible, por lo que sólo se puede leer a través de sus métodos de acceso y sólo una vez que su super constructor ha sido llamado.

Consulte la fuente TextView para ver cómo funciona internamente.

Si quieres tener acceso a esos atributos 'android' puedes 'anularlos': en tu declarable-styleable declare eg.

 <attr name="android:padding"/> 

Entonces usted puede fácilmente obtener de esta manera:

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

Sólo para un registro anwser está inspirado en el código fuente de TwoWayView implementado por Lucas Rocha. Creo que es un buen ejemplo para analizar cómo implementar vistas personalizadas

Para acceder al recurso de com.android.internal.R , puede utilizar

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

El enlace puede ser útil:

  • Cómo configurar un oyente en el texto seleccionado en TextView
  • Vínculos con varios clics en TextView en Android
  • Cómo mostrar la cadena dependiendo del ancho del diseño
  • Cómo obtener Spannable y su color de TextView para escribir una prueba de unidad
  • TextView escribe texto verticalmente cuando configura sus layoutparams a fill_parent
  • Cómo invertir la dirección de la marquesina de un TextView
  • Extensión de Spanned, SpannedString, Spannable, SpannableString y CharSequence de Android
  • Android SpannableString establecer fondo detrás de parte del texto
  • ¿Cómo arreglar la línea de base de la fuente en Android Lollipop cuando se trabaja con fuentes personalizadas de iconos?
  • Dos estilos diferentes en un solo textview con diversa gravedad y hieght
  • ¿Cómo repetir textview?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.