So legen Sie Text in einem EditText fest


Antworten:


244

Wenn Sie in den Dokumenten nachsehen EditText, finden Sie eine setText()Methode. Es dauert a Stringund a TextView.BufferType. Beispielsweise:

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

Es erbt auch TextViews setText(CharSequence)und setText(int)Methoden, so dass Sie es wie ein reguläres festlegen können TextView:

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

6
EditText.BufferType.EDITABLE?
sll

3
Nein, EditTexterstreckt sich TextView; TextView.BufferType.EDITABLEist die richtige Konstante.
Kevin Coppock

4
Was einen Neuling verwirren könnte, ist, dass setText tatsächlich eine CharSequence und einen BufferType verwendet. Es ist also nützlich, sich daran zu erinnern, dass Strings von CharSequence stammen
Avatar33

6
Warum gibt es android.text.Editable oder, noch besser, warum sollten normale Entwickler darin navigieren, anstatt EditText eine void setText (CharSequence) -Methode verfügbar zu machen?
Marcelo Lacerda

3
@MarceloLacerda Es macht setText(CharSequence)aus seiner Oberklasse sichtbar TextView. Ich bin mir also nicht sicher, warum dies die am besten bewertete und akzeptierte Antwort ist.
Hendy Irawan

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

Ich habe festgestellt, dass String eine nützliche indirekte Unterklasse von CharSequence ist

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

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


Beachten Sie, dass alle Zeichenfolgen CharSequences sind, daher funktioniert diese, aber eine rohe CharSequence ist keine Zeichenfolge. Wenn Sie eine unformatierte CharSequence haben und eine Zeichenfolge ERFORDERN, müssen Sie myCharSequence.toString () aufrufen, um die offizielle Zeichenfolge abzurufen. Für DIESE Anwendung nicht erforderlich, aber manchmal ist dies an anderer Stelle erforderlich.
DragonLord

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

Check it out EditTextAkzeptiere nur String-Werte, wenn nötig, konvertiere es in String.

Wenn int, double, long value, machen Sie:

String.value(value);

3

Verwenden Sie +, den String-Verkettungsoperator:

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

oder verwenden

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

oder verwenden

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

3

Dies ist die Lösung in Kotlin

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

2

Sie können einstellen 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

Du brauchst:

  1. Erklären Sie die EditText in the xml file
  2. Finden Sie die EditTextin der Aktivität
  3. Stellen Sie den Text in der EditText

1

Lösung in Android Java:

  1. Starten Sie Ihren EditText, die ID wird zu Ihrer XML-ID.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. Legen Sie in Ihrer OnCreate-Methode den Text einfach mit dem definierten Namen fest.

    String text = "here put the text that you want"
  3. Verwenden Sie die setText-Methode aus Ihrem editText.

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

0

Wenn Sie Text zur Entwurfszeit in einer xmlDatei festlegen möchten, android:text="username"fügen Sie einfach diese Eigenschaft hinzu.

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

Wenn Sie Text programmgesteuert in Java festlegen möchten

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

und kotlingenauso wie Java mit Getter / Setter

edtUsername.setText("username")

Aber wenn Sie .textaus Prinzip verwenden wollen, dann

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

wegen EditText.texterfordert ein editablean erster stelle nichtString

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.