Como definir texto em um EditText


Respostas:


244

Se você verificar os documentos EditText, encontrará um setText()método. Leva um Stringe um TextView.BufferType. Por exemplo:

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

Também herda TextView's setText(CharSequence)e setText(int)métodos, para que você possa configurá-lo como um regular TextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);

6
EditText.BufferType.EDITABLE?
S19 /

3
Não, EditTextse estende TextView; TextView.BufferType.EDITABLEé a constante correta.
Kevin Coppock

4
O que pode confundir um novato é que o setText realmente usa um CharSequence e um BufferType. Portanto, é útil lembrar que as strings são do CharSequence
Avatar33

6
Por que o android.text.Editable existe ou, melhor ainda, por que os desenvolvedores normais deveriam navegar nele em vez de o EditText expor um método setText (CharSequence) nulo?
Marcelo Lacerda

3
@MarceloLacerda Ele expõe setText(CharSequence), de sua superclasse TextView. Portanto, não tenho muita certeza de por que essa é a resposta mais votada e aceita?
Hendy Irawan

21
String string="this is a text";
editText.setText(string)

Eu descobri que String é uma subclasse indireta útil de CharSequence

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

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


Observe que todas as Strings são CharSequences, portanto, essa funciona, mas um CharSequence bruto não é uma String. Se você possui um CharSequence bruto e EXIGE uma String, precisa chamar myCharSequence.toString () para obter a String oficial. Não é necessário saber para ESTE aplicativo, mas às vezes em outros lugares isso é necessário.
DragonLord 24/01

6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

Verifique se EditTextaceita apenas valores de String, se necessário, converta-os em string.

Se int, double, long value, faça:

String.value(value);

3

Use +, o operador de concatenação de cadeias:

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

ou use

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

ou use

Integer.toString(int):
ed.setText(Integer.toString(x));

3

Esta é a solução em Kotlin

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")

2

Você pode definir android:text="your text";

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


1

Você precisa:

  1. Declarar o EditText in the xml file
  2. Encontre o EditTextna atividade
  3. Defina o texto no EditText

1

Solução em Java Android:

  1. Inicie seu EditText, o ID chegou ao seu ID XML.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. no seu método OnCreate, basta definir o texto com o nome definido.

    String text = "here put the text that you want"
  3. use o método setText do seu editText.

    myText.setText(text); //variable from point 2

0

Se você deseja definir o texto no tempo de design no xmlarquivo, basta android:text="username"adicionar esta propriedade.

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

Se você deseja definir texto programaticamente em Java

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

e no kotlinmesmo como java usando getter / setter

edtUsername.setText("username")

Mas se você quiser usar .textpor princípio, então

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

por causa de EditText.textrequer um editableno primeiro lugar nãoString

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.