Android: Establecer Editar texto o ver la vista de texto Programáticamente
Estoy desarrollando una aplicación en la que estoy creando un Edittext programáticamente como:
EditText edText = new EditText(this); edText.setId(1); edText .setLayoutParams(new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,0f)); edText .setInputType(InputType.TYPE_CLASS_NUMBER); edText.setHint("dsgsdgsgs"); tableLayout.addView(edText);
Aquí estoy fijando el id del texto de la edición como "1" por la línea edText.setId(1);
En entero.
- Cómo llenar la pantalla con cuatro botones con el diseño de la tabla?
- Botón de forma triangular para la actividad de Android
- Cómo alinear mediante programación un Android TextView a la derecha de otro TextView
- Marshmallow RelativeLayout se comporta de forma extraña con alignBaseline
- Retrato para teléfono, paisaje para Tablet (Android-Layout)
Pero lo que necesito es – Quiero fijar la identificación en carácter como por ejemplo:
edText.setId("edittext_hello");
Para que pueda acceder a ella a través de ese id. ¿Cómo puedo lograr esta tarea por favor ayuda.
- Textview actuar como un terminal
- ¿Puedo colocar mis estilos de Android en diferentes nombres de paquetes?
- Cómo cambiar la clase del fragmento dinámicamente
- Fragmento no apareciendo
- SearchView y título de la actividad en ActionBar
- Alineación de fragmentos con RelativeLayout
- Error al inflar el fragmento de clase
- Detección de la posición del pulgar en SeekBar antes de la versión 16 de la API
No puede establecer ID como una cadena. Sólo puede asignar entero como Id. Pero si quieres usar String como id para la facilidad de uso entonces – en archivo res / values / ids.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <item name="edit_text_hello" type="id"/> </resources>
Y luego usarlo como:
edText.setId(R.id.edit_text_hello);
Así que puedes hacer lo que necesites.
Como los otros han dicho que no puedes hacer esto. ¿Por qué desea / cuál es su requisito?
Podrías crear un id en un archivo xml y usarlo, si quieres que sea descriptivo. Este es también un mejor enfoque que el uso de int
literal, ya que puede obtener un choque de id con otras vistas en la jerarquía de diseño (improbable pero posible). Esto me parece la mejor / más limpia solución a su problema.
Ver http://developer.android.com/guide/topics/resources/more-resources.html#Id
Por ejemplo, en res/values/id.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="edittext_hello" /> </resources>
Y luego establecer con
edText.setId(R.id.edittext_hello);
No, no puede establecer id
como una cadena. Sólo puede asignar integer
como Id. Puede usar setTag()
de View
con String. Pero para id solo será Integer. Como los recursos de android se mantienen en el archivo R.java para el tipo de entero.
Actualizar:
¿Por qué no establece String u otros tipos de datos (sin entero) id en ningún recurso android?
Porque:
Un ID de recurso de Android es un entero de 32 bits. Comprende
an 8-bit Package id [bits 24-31] an 8-bit Type id [bits 16-23] a 16-bit Entry index [bits 0-15]
El identificador de paquete identifica el fragmento de paquete que contiene el recurso.
El identificador de tipo identifica el tipo de recurso y, por lo tanto, el fragmento y el fragmento correspondientes de tipo y de tipo de tipos de datos que contienen su valor o valor (es)
El índice de entrada identifica el recurso individual dentro de los fragmentos de Tipo de tipografía y Tipo (s).
No se puede establecer id
con char
, String
o cualquier otra cosa excepto int
… porque, id
es mantenido por el archivo R.java
que contiene sólo int
.
Puede utilizar setTag()
lugar de setId()
.
Use setTag()
como a continuación …
edText.setTag("edittext_hello");
Puede utilizar setText () en lugar de setId ().
EdText_view.setText ("Su texto");