¿Cuál es la mejor práctica para nombrar el ID de Elemento XML en Android?
No estoy seguro de si alguien estaba escuchando este problema antes, pero es un gran dolor para mí.
¿Cómo se le da un elemento id a xml en android?
- Android: ¿Cómo navegar de nuevo desde la sub-pantalla de preferencia a través de la barra de acción en xml?
- ¿Por qué SwitchPreference no muestra animación al cambiar de encendido a apagado y viceversa?
- Recuperar el archivo Xml eliminado de la aplicación en android
- Cómo agregar etiquetas en XML en Android?
- Cómo cargar el archivo xml del animador en Android programatically?
En este momento, establezco el identificador con el patrón [nombre de la actividad / fragmento] [tipo de elemento] [nombre específico] . Por ejemplo, si tuviera un EditText para guardar un correo electrónico que se utiliza en LoginActivity, le daré la identificación 'LoginEditTextEmail'.
El problema que estoy enfrentando es, con este enfoque, el ID a menudo termina en un muy largo.
¿Cómo se establece el ID? cual es la mejor practica?
- Include tag en el archivo xml de la programación de Android
- Los elementos de menú deben especificar un título
- Crear una DialogPreference desde XML
- Análisis de archivos XML grandes utilizando el analizador SAX (salte algunas líneas / etiquetas)
- Android: Cómo acceder a la carpeta de recursos de otra aplicación de Android
- ¿Se puede utilizar GradientColor para definir un gradiente para un relleno o trazo enteramente en XML?
- Cómo detener la tarea Asyn en onPreExecute?
- Android: estilo de atributo desconocido en una etiqueta de fragmento
Los nombres descriptivos son ideales (igual que con el nombre a cualquier variable en cualquier lenguaje de programación).
Creo que ya tienes un buen sistema que ofrecería estas posibles formas de disminuir el tamaño de tus ID
[Nombre de la actividad / del fragmento] – personalmente dejaría caer esto, tienden para utilizar un archivo de la disposición por la actividad / el fragmento de todos modos así que no hay confuso qué actividad la opinión se significa para estar adentro también hay épocas en que reutilizo algunos Ver widgets en múltiples actividades y los dejaré con el mismo ID para que el código para encontrarlos e interactuar con ellos sea simplificado (es decir, puede ser copiar / pegar o poner en una subclase de Actividad)
[Tipo de elemento] – Utilizo una abreviatura de 3 letras para los tipos de widget:
- Edt = EditarTexto
- Txt = TextView
- Lbl = TextView que es estático para etiquetar algo
- Btn = Botón
- Prg = ProgressBar
- Lyt = Diseño
- Etc …
[Nombre específico] – no hay mejoría real que hacer aquí, tiene que ser tan larga como debe ser para describir lo que es.
Estás complicando cosas. Simplemente nombre de cualquier manera es memorable para usted. Los identificadores sólo tienen que ser únicos por XML (es decir, puede tener 50 diseños diferentes con el id de my_edittext
) ya que encuentra una vista por su ID solo a través de una jerarquía de vista única.
Al igual que nombrar algo, tienden a utilizar el nombre más corto posible que describe con precisión. En el caso de ids para diseños, asegúrese de que cada id es único en su diseño (puede volver a usar el mismo id en un diseño diferente).
Fragmento de gota, actividad y tipo a menos que califiques estos en la codificación, así que:
boolean isLoggedIn = false;
android:id="@+id/is_logged_in"
Como se menciona en otras respuestas, el XML proporciona el calificador, ahora usted tiene que decidir si la consistencia y / o la calificación adicional es necesaria y si conviene. ¿Realmente necesita calificar y si no está apoyando el código va a ser mucho más difícil por usted o cualquier otra persona?
Entonces, ¿qué pasa con strings.xml
?
Prefija el identificador con un frag o un calificador de actividad. Así por ejemplo:
<string name=" profile _is_logged_in_true">Logged in.</string>
<string name=" profile _is_logged_in_false">Not logged in.%</string>
También…
<plurals name="plural_is_logged_in_duration">...
He jugado con:
<string name=" profile _isloggedin_false">Not logged in.</string>
Pero aún no está convencido. Esto es en realidad un problema de clasificación, ahora resuelto en otras disciplinas por etiquetado. Java proporciona espacio de nombres y calificadores de tipos puntuales, por lo que
com.example.android.app.profile.State.isLoggedIn
Android utiliza cosas como R.string
🙂 Así que tienes el Java más algún espacio de nombres adicional de Android. No olvide que puede tener más de un archivo de recursos de cadena, por lo que tal vez:
res/values/widget_defaults.xml
Podría contener algunos valores por defecto para decir un TextView
. Las cadenas verdaderas y falsas deben ser manejadas por plurales – pero el ejemplo, con suerte, ayuda, a pesar de un poco inventado.
- La llamada de servicio vuelve a la actividad en android
- ¿Cómo mostrar la imagen en notificación push (Gcm) android?