Cómo establecer texto en un texto de edición

Respuestas:

244

Si revisas los documentos EditText, encontrarás un setText()método. Toma en a Stringy a TextView.BufferType. Por ejemplo:

EditText editText = (EditText)findViewById(R.id.edit_text);
editText.setText("Google is your friend.", TextView.BufferType.EDITABLE);

También hereda TextView's setText(CharSequence)y setText(int)métodos, por lo que puede configurarlo como un regular TextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);
Kevin Coppock
fuente
66
EditText.BufferType.EDITABLE?
Todo
3
No, se EditTextextiende TextView; TextView.BufferType.EDITABLEes la constante correcta
Kevin Coppock
44
Lo que podría confundir a un novato es que setText en realidad toma un CharSequence y un BufferType. Por lo tanto, es útil recordar que las cadenas son de CharSequence
Avatar33
66
¿Por qué existe android.text.Editable o, mejor aún, por qué se supone que los desarrolladores normales deben navegar a su alrededor en lugar de EditText exponiendo un método vacío setText (CharSequence)?
Marcelo Lacerda
3
@MarceloLacerda Expone setText(CharSequence), desde su superclase TextView. Entonces, no estoy realmente seguro de por qué esta es la respuesta más votada y aceptada.
Hendy Irawan
21
String string="this is a text";
editText.setText(string)

He descubierto que String es una subclase indirecta útil de secuencia de caracteres

http://developer.android.com/reference/android/widget/TextView.html find setText (texto de secuencia de caracteres)

http://developer.android.com/reference/java/lang/CharSequence.html

Earlcasper
fuente
Tenga en cuenta que todas las cadenas son secuencias de caracteres, por lo que esta funciona, pero una secuencia de caracteres sin formato no es una secuencia. Si tiene una CharSequence sin procesar y REQUIERE una Cadena, debe llamar a myCharSequence.toString () para obtener la Cadena oficial. No es necesario saberlo para ESTA aplicación, pero a veces en otros lugares esto es necesario.
DragonLord
6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

Compruébelo, EditTextacepte solo valores de cadena si es necesario, conviértalo en cadena.

Si int, double, long value, haz:

String.value(value);
Samrat Das Choudhury
fuente
3

Use +, el operador de concatenación de cadenas:

 ed = (EditText) findViewById (R.id.box);
    int x = 10;
    ed.setText(""+x);

o usar

String.valueOf(int):
ed.setText(String.valueOf(x));

o usar

Integer.toString(int):
ed.setText(Integer.toString(x));
Rajesh Wadhwa
fuente
3

Esta es la solución en Kotlin

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")
Aarón Lucker
fuente
2

Puedes configurar android:text="your text";

<EditText
    android:id="@+id/editTextName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/intro_name"/>
Cabezas
fuente
1

Necesitas:

  1. Declarar el EditText in the xml file
  2. Encuentra el EditTexten la actividad
  3. Establecer el texto en el EditText
usuario1695144
fuente
1

Solución en Android Java:

  1. Comience su EditText, la identificación ha llegado a su id xml.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. en su Método OnCreate, simplemente configure el texto con el nombre definido.

    String text = "here put the text that you want"
  3. use el método setText de su editText.

    myText.setText(text); //variable from point 2
Vinicius Mesquita
fuente
0

Si desea establecer el texto en tiempo de diseño en el xmlarchivo, simplemente android:text="username"agregue esta propiedad.

<EditText
    android:id="@+id/edtUsername"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="username"/>

Si desea establecer texto mediante programación en Java

EditText edtUsername = findViewById(R.id.edtUsername);
edtUsername.setText("username");

y en lo kotlinmismo como Java usando getter / setter

edtUsername.setText("username")

Pero si quieres usar .textpor principio, entonces

edtUsername.text = Editable.Factory.getInstance().newEditable("username")

debido a que EditText.textrequiere un editableprimer lugar noString

Dinesh
fuente