¿Cómo se puede agregar dinámicamente campos EditText en una aplicación de Android (Java)?

Puede crearlos mediante programación, leyendo de una lista de objetos que contienen los datos necesarios para un EditText, por ejemplo, de una lista de objetos de Pregunta que crea al analizar un archivo json de cuestionario.

Así que supongamos que ha analizado el archivo json y tiene esto:

List questionFields;

ahora recorra la lista y cree un EditText para la respuesta de cada pregunta:

para (QuestionField questionField: questionFields) {
EditText answerInputField = nuevo EditText (contexto);
answerInputField.setLayoutParams (
nuevos LayoutParams (LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT,));

rootLayout.addView (answerInputField);
}

En el bucle, puede establecer cualquier parámetro para EditText como lo haría en XML utilizando los métodos de establecimiento de Java correspondientes.

// obtener un diseño en el que agregar TextView
layoutTest = (LinearLayout) findViewById ( http: //R.id.layoutTest );

// crear textview
TextView textView = new TextView (getApplicationContext ());
textView.setText (“testDynamic textView”);

// agregarlo al diseño
layoutTest.addView (textView);

Cuando agrega EditText dinámicamente, el objeto que usa es el mismo objeto que usa

en el archivo de diseño xml. Esto significa que puede establecer valores para cosas como

id, texto, ancho, alto, fondo, etc.

Para crear una instancia del objeto, use el constructor de esta manera:

EditText et = new EditText (este); // esto se refiere a la actividad o al contexto.
// establece los atributos según sea necesario
et.setText (“Texto dinámico”);
et.setLayoutParams (nuevo LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); // esto establece el ancho y la altura

Ahora, para mostrar el texto de edición, debe agregarlo a la ‘vista de contenedor’, esto podría ser un

LinearLayout, FrameLayout o RelativeLayout.

LinearLayout ll = (LinearLayout) findViewById (R.id.my_linear_layout);
ll.addView (et);

More Interesting

Cómo probar AndroidHttpClient

Estoy pensando en hacer una aplicación para Android. No sé casi nada sobre programación, pero estoy dispuesto a aprender. ¿Qué puede ayudarme a comenzar a aprender a desarrollarme?

¿Qué tan difícil es hacer el trabajo de desarrollo en C ++ en un dispositivo Android?

Cómo conectar un modelo TensorFlow a una aplicación web en un Android

Estamos decidiendo entre jQuery Mobile, Sencha Touch y Dojo Mobile. ¿Cuáles son los pros y los contras de cada uno? Queremos crear una experiencia HTML5 que apunte a la mayoría del mercado de navegadores de teléfonos inteligentes, combinándola con una experiencia nativa con PhoneGap.

¿Cuál es la configuración mínima del sistema para crear una aplicación para Android?

¿Cómo las aplicaciones como MusiXmatch y / o Shazam logran reproducir letras con tanta precisión?

¿Cuál es el mejor libro para estudiar para aprender el desarrollo de aplicaciones de Android?

¿Por qué algunas aplicaciones se proporcionan con Android de forma predeterminada sin derecho a eliminarlas?

Cómo contratar una empresa de desarrollo de aplicaciones Android para empresas

¿El JavaScript utilizado en una aplicación de Android es el mismo que el de una página web?

Soy principiante avanzado en PHP y Python pero nuevo en Java + Spring. ¿Debo comenzar con Java si creo que mi aplicación web solo se convertirá en aplicaciones de Android e iOS?

Cómo convertirte en un desarrollador de Android en India gratis

¿Para qué se usa Gradle en Android Studio?

¿Qué tan difícil es crear aplicaciones de Android para un no especialista?