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?

3 Solutions collect form web for “Cómo obtener atributos con el espacio de nombres "android" en TextView personalizado”

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:

  • Barra de herramientas de selección de texto no visible en las versiones de pre-malvavisco sin ActionBar
  • ¿Cómo agrego una nueva línea a un TextView en Android?
  • ¿Por qué se envuelve el contenido en la línea múltiple TextView fill parent?
  • Android: ¿Cómo puedo actualizar mi textView en un fragmento
  • Android TextView con enlaces clicables: cómo capturar clics?
  • ¿Establecer etiquetas para cada elemento en un ListView en Android?
  • ¿Cuáles son la semántica de cada constante de InputType?
  • Problema de base de datos SQLite en TextView
  • Envoltura de texto uniforme en TextView
  • .length () vs .getText (). Length () vs .getText (). ToString (). Length ()
  • Custom textview con rotar, acercar, alejar y mover en el tacto en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.