So legen Sie Text in einem EditText fest

128

Wie kann ich den Text eines EditText einstellen?

user555910
quelle
8
Ich möchte Text in Text bearbeiten setzen ist es möglich
user555910

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);
Kevin Coppock
quelle
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

Earlcasper
quelle
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);
Samrat Das Choudhury
quelle
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));
Rajesh Wadhwa
quelle
3

Dies ist die Lösung in Kotlin

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")
Aarón Lucker
quelle
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"/>
Cabezas
quelle
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
user1695144
quelle
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
Vinicius Mesquita
quelle
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

Dinesh
quelle