Come impostare il testo in un testo di modifica


Risposte:


244

Se controlli i documenti per EditText, troverai un setText()metodo. Accetta a Stringe a TextView.BufferType. Per esempio:

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

Inoltre eredita TextViews' setText(CharSequence)e setText(int)metodi, in modo da poter impostare proprio come un normale TextView:

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

6
EditText.BufferType.EDITABLE?
sabato

3
No, si EditTextestende TextView; TextView.BufferType.EDITABLEè la costante corretta.
Kevin Coppock,

4
Ciò che potrebbe confondere un principiante è che setText accetta effettivamente un CharSequence e un BufferType. Quindi è utile ricordare che le stringhe sono di CharSequence
Avatar33

6
Perché esiste android.text.Editable o, meglio ancora, perché gli sviluppatori normali dovrebbero navigare attorno ad esso invece che EditText esponendo un metodo setText vuoto (CharSequence)?
Marcelo Lacerda,

3
@MarceloLacerda Espone setText(CharSequence), dalla sua superclasse TextView. Quindi non sono davvero sicuro del perché questa sia la risposta più votata e accettata?
Hendy Irawan,

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

Ho trovato String come una sottoclasse indiretta utile di CharSequence

http://developer.android.com/reference/android/widget/TextView.html trova setText (testo CharSequence)

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


Nota che tutte le stringhe sono CharSequences, quindi questa funziona, ma una CharSequence non è una stringa. Se hai una CharSequence non elaborata e RICHIEDI una stringa, devi chiamare myCharSequence.toString () per ottenere la stringa ufficiale. Non è necessario sapere per QUESTA applicazione, ma a volte altrove è necessario.
DragonLord,

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

Dai un'occhiata EditTextaccetta solo i valori String se necessario convertilo in stringa.

Se int, double, long value, esegui:

String.value(value);

3

Usa +, l'operatore di concatenazione delle stringhe:

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

o usare

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

o usare

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

3

Questa è la soluzione in Kotlin

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

2

Puoi impostare 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

Devi:

  1. Dichiarare il EditText in the xml file
  2. Trova EditTextnell'attività
  3. Imposta il testo in EditText

1

Soluzione in Android Java:

  1. Inizia il tuo EditText, l'ID è arrivato al tuo ID XML.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. nel tuo metodo OnCreate, basta impostare il testo con il nome definito.

    String text = "here put the text that you want"
  3. usa il metodo setText dal tuo editText.

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

0

Se vuoi impostare il testo in fase di progettazione nel xmlfile, android:text="username"aggiungi semplicemente questa proprietà.

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

Se si desidera impostare il testo a livello di codice in Java

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

e kotlincome java usando getter / setter

edtUsername.setText("username")

Ma se vuoi usare .textdal principio allora

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

a causa di EditText.textrichiede un editableprimo posto nonString

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.