Instanciar una clase interna (Preferencia) en un archivo xml

Cuando desea acceder a una vista personalizada en algún archivo layout.xml , tiene dos opciones:

  1. La vista es en su propia clase. Entonces usted hace <package.name.MyView android:layout_width= ... />
  2. La vista es una clase interna: <view class="package.name.OuterClass$MyView" android:layout_width= ... />

Ahora quiero hacer lo mismo dentro de una <PreferenceScreen> . La primera manera funciona bien, pero me gustaría poner todas las clases de Preference personalizado juntos en mi PreferenceActivity. He intentado <Preference class="package.name.OuterClass$MyPreference" ... /> (también con '.' En lugar de '$') así como <package.name.OuterClass.MyPreference ... /> , pero Ambos fallaron.

¿Alguien tiene alguna idea?

Cuando se trata de Views LayoutInflater , LayoutInflater busca un caso "view" -> "class":

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

PreferenceInflater de PreferenceInflater no, por lo que es para el caso "clase".

Utiliza la reflexión en su método createItem() y es probablemente por eso que el primer caso funciona para usted.

  • Android: ¿cómo obtener la lista de todas las preferencias xml para mi aplicación y leerlas?
  • Android: ¿Cómo navegar de nuevo desde la sub-pantalla de preferencia a través de la barra de acción en xml?
  • Actividad de preferencias de Android IllegalArgumentException: fragmento no válido para esta actividad
  • Método RingtonePreference getEntry
  • Preferencias anidadas.xml
  • ¿Cómo editar / restablecer Alarm Manager?
  • Cómo implementar una confirmación (sí / no) DialogPreference?
  • Extras en el intento de correo electrónico - Preferencias XML
  • Actualizar el elemento de preferencia existente en una PreferenciaActividad al regresar de una (sub) PreferenciaScreen
  • ¿Cómo detectar si se hicieron cambios en las preferencias?
  • Cómo establecer el resumen de preferencias edittext y hacer que se pegue
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.