Jak ustawić tekst w EditText

128

Jak mogę ustawić tekst EditText?

user555910
źródło
8
chcę ustawić tekst w tekście edycji, czy to możliwe
użytkownik555910

Odpowiedzi:

244

Jeśli sprawdzisz dokumenty EditText, znajdziesz setText()metodę. Zajmuje a Stringi a TextView.BufferType. Na przykład:

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

To również dziedziczy TextViews” setText(CharSequence)i setText(int)metod, dzięki czemu można ustawić go jak zwykły TextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);
Kevin Coppock
źródło
6
EditText.BufferType.EDITABLE?
sll
3
Nie, EditTextrozciąga się TextView; TextView.BufferType.EDITABLEjest poprawną stałą.
Kevin Coppock
4
To, co może zmylić początkującego, to fakt, że setText w rzeczywistości przyjmuje CharSequence i BufferType. Warto więc pamiętać, że ciągi znaków należą do CharSequence
Avatar33
6
Dlaczego istnieje android.text.Editable lub, jeszcze lepiej, dlaczego zwykli programiści mają się po nim poruszać zamiast EditText ujawniając metodę void setText (CharSequence)?
Marcelo Lacerda
3
@MarceloLacerda To eksponuje setText(CharSequence)ze swojej superklasy TextView. Więc nie jestem pewien, dlaczego jest to najbardziej przychylna i akceptowana odpowiedź?
Hendy Irawan
21
String string="this is a text";
editText.setText(string)

Znalazłem String jako przydatną pośrednią podklasę CharSequence

http://developer.android.com/reference/android/widget/TextView.html znajdź setText (tekst CharSequence)

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

earcasper
źródło
Zauważ, że wszystkie ciągi są CharSequence, więc ten działa, ale surowa CharSequence nie jest ciągiem. Jeśli masz surową CharSequence i REQUIRE a String, musisz wywołać myCharSequence.toString (), aby uzyskać oficjalny ciąg. Nie jest to konieczne dla TEGO wniosku, ale czasami gdzie indziej jest to konieczne.
DragonLord
6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

Sprawdź to EditText akceptuj tylko wartości String, jeśli to konieczne, przekonwertuj je na ciąg.

Jeśli int, double, long value, wykonaj:

String.value(value);
Samrat Das Choudhury
źródło
3

Użyj +, operatora konkatenacji ciągów:

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

albo użyj

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

albo użyj

Integer.toString(int):
ed.setText(Integer.toString(x));
Rajesh Wadhwa
źródło
3

To jest rozwiązanie w Kotlinie

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")
Aarón Lucker
źródło
2

Możesz ustawić 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
źródło
1

Musisz:

  1. Zadeklaruj EditText in the xml file
  2. Znaleźć EditText w działaniu
  3. Ustaw tekst w EditText
user1695144
źródło
1

Rozwiązanie w Android Java:

  1. Uruchom swój EditText, identyfikator przychodzi do twojego xml id.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. w metodzie OnCreate, po prostu ustaw tekst według zdefiniowanej nazwy.

    String text = "here put the text that you want"
  3. użyj metody setText z twojego editText.

    myText.setText(text); //variable from point 2
Vinicius Mesquita
źródło
0

Jeśli chcesz ustawić tekst w xmlpliku w czasie projektowania , po prostu android:text="username"dodaj tę właściwość.

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

Jeśli chcesz programowo ustawić tekst w Javie

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

i kotlintak samo jak java przy użyciu getter / setter

edtUsername.setText("username")

Ale jeśli chcesz korzystać .textz zasady, to

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

ponieważ EditText.textwymaga editablena początku nieString

Dinesh
źródło