Android: crea automáticamente variables para todos los IDs en xml

Me di cuenta de que una de las partes más tediosas de desarrollo de Android es el diseño de diseño, incluso con el constructor de diseño.

Después de configurar los gráficos, el diseño, haciendo asociaciones de variables con los elementos de diseño es muy tedioso, como ImageButton myButton = (ImageButton)findViewById(R.id.myButton);

En los diseños más grandes, estos pueden obtener tedioso para realizar un seguimiento (recordando los nombres de los elementos) y, a continuación, la necesidad de añadir más variables en cualquier tipo de orden es frustrante.

Para mitigar ligeramente esto, sería muy conveniente si todos los IDs que declaré en el XML se asociaran automáticamente con sus propias variables, y todos esos tipos de datos ya estaban incluidos en esa clase

¿Hay algo que ya hace esto?

Por ejemplo si escribo

  <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/myButton" android:id="@+id/myButton"></ImageButton> 

Entonces me gustaría que las clases que incluyen este diseño ya tienen

  import android.ImageButton; ImageButton myButton; myButton = (ImageButton)findViewById(R.id.myButton); 

¿Es este un ajuste o una característica a solicitar? Estoy utilizando el Eclipse IDE y sería muy conveniente

Pruebe a utilizar Anotaciones de Android . Proporciona anotaciones útiles para reemplazar el código clásico.

Por ejemplo, vea la documentación de @ViewById : simplemente declare los campos anotados

 @ViewById EditText myEditText; @ViewById(R.id.myTextView) TextView textView; 

Reemplaza

 EditText myEditText; TextView textView; @Override public void onCreate(Bundle savedInstanceState) { [...] myEditText = (EditText) findViewById(R.id.myEditText); textView = (TextView) findViewById(R.id.myTextView); } 

Hice una herramienta para generar automáticamente el código de Java para atar la disposición XML y la lógica del programa junto.

Básicamente toma una disposición de XML, y genera todo el código de Java necesario para usted en un instante. Hay soporte para variables de miembro básicas, patrón ViewHolder, ArrayAdapter, CursorAdapter y tipos de código RoboGuice.

Lo puedes encontrar aquí: Android Layout Finder | Zumbido de Android

Esa es una solicitud de característica. Es muy buena y creo que sería muy útil; Por otro lado hay casos en los que no funcionaría muy bien, por ejemplo, si está inflando vistas de forma dinámica y no sabe, en tiempo de compilación, qué vista una Actividad particular se inflará. Sin embargo, tienden a pensar que este caso sería la excepción y no la regla.

La forma más fácil de hacerlo sería codificar una secuencia de comandos que escanea los archivos XML de la presentación en busca de componentes con ID y crea archivos .java con las definiciones adecuadas. Entonces, sus actividades podrían derivarse de esas clases auto-generadas. Algo como esto:

Cuando se procesa por el script, genera una clase:

 class FooBarLayoutActivityBase extends Activity ... { protected ImageButton myButton; FooBarLayoutActivityBase() { myButton = (ImageButton)findViewById(R.id.myButton); } } 

Entonces, simplemente puede heredar de esa clase base para usar los componentes …

El método de escritura es simple y no requiere que se profundice en el código de la cadena de herramientas, pero también podría hacerlo directamente en el complemento ADT.

  • Pregunta la ayuda sobre el problema de lectura de AndroidManifest.xml
  • Android: ¿Cómo declarar el espacio de nombres XML en styles.xml?
  • Obtención de recursos de / res en dependencia
  • El atributo no se declara (Android) en los atributos xml básicos
  • ¿Cajón de la navegación sobre la barra de estado en turrón?
  • Eclipse: inhabilita la compilación de archivos XML mientras está en perspectiva de Java
  • Ancho del elemento RecyclerView layout_width = "match_parent" no coincide con el padre
  • * Cualquier * forma de vincular Android / dibujable gráficos a / activos?
  • Escapar comillas simples en el recurso xml para Android
  • Crear componente personalizado basado en LinearLayout, declarando el diseño en XML
  • Android Create Drawable XML with Image esquinas redondeadas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.