Как установить текст в EditText

128

Как я могу установить текст EditText?

user555910
источник
8
я хочу установить текст в тексте редактирования, возможно ли?
user555910 04

Ответы:

244

Если вы посмотрите документацию EditText, вы найдете setText()метод. Он принимает а Stringи а TextView.BufferType. Например:

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

Он также наследует TextView«s setText(CharSequence)и setText(int)методы, так что вы можете установить его так же , как и обычный TextView:

editText.setText("Hello world!");
editText.setText(R.string.hello_world);
Кевин Коппок
источник
6
EditText.BufferType.EDITABLE?
sll
3
Нет, EditTextрасширяется TextView; TextView.BufferType.EDITABLE- правильная константа.
Кевин Коппок
4
Новичка может смутить то, что setText на самом деле принимает CharSequence и BufferType. Так что полезно помнить, что строки - это CharSequence
Avatar33
6
Почему существует android.text.Editable или, еще лучше, почему обычные разработчики должны перемещаться по нему, а не EditText, предоставляя метод void setText (CharSequence)?
Марсело Ласерда,
3
@MarceloLacerda Он раскрывает setText(CharSequence)из своего суперкласса TextView. Так что я не совсем уверен, почему это самый популярный и принятый ответ?
Хенди Ираван
21
String string="this is a text";
editText.setText(string)

Я обнаружил, что String является полезным косвенным подклассом CharSequence

http://developer.android.com/reference/android/widget/TextView.html найдите setText (текст CharSequence)

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

earlcasper
источник
Обратите внимание, что все строки являются CharSequences, поэтому этот работает, но необработанный CharSequence не является String. Если у вас есть необработанный CharSequence и ТРЕБУЕТСЯ строка, вам нужно вызвать myCharSequence.toString (), чтобы получить официальную строку. Для ЭТОГО приложения знать не нужно, но иногда это необходимо в другом месте.
DragonLord
6
String text = "Example";
EditText edtText = (EditText) findViewById(R.id.edtText);
edtText.setText(text);

Отметьте это, EditTextпринимайте только строковые значения, если необходимо, преобразуйте его в строку.

Если int, double, long value, выполните:

String.value(value);
Самрат Дас Чоудхури
источник
3

Используйте +, оператор конкатенации строк:

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

или используйте

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

или используйте

Integer.toString(int):
ed.setText(Integer.toString(x));
Раджеш Вадхва
источник
3

Это решение в Котлине

val editText: EditText = findViewById(R.id.main_et_name)
    editText.setText("This is a text.")
Аарон Лакер
источник
2

Вы можете установить 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

Тебе надо:

  1. Объявить EditText in the xml file
  2. Найдите EditTextв деятельности
  3. Установите текст в EditText
user1695144
источник
1

Решение в Android Java:

  1. Запустите свой EditText, идентификатор приходит к вашему xml id.

    EditText myText = (EditText)findViewById(R.id.my_text_id);
  2. в вашем методе OnCreate просто установите текст по заданному имени.

    String text = "here put the text that you want"
  3. используйте метод setText из вашего editText.

    myText.setText(text); //variable from point 2
Виниций Мескита
источник
0

Если вы хотите установить текст во время разработки в xmlфайле, просто android:text="username"добавьте это свойство.

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

Если вы хотите программно установить текст на Java

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

и так kotlinже, как java, используя getter / setter

edtUsername.setText("username")

Но если вы хотите использовать .textиз принципа, то

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

потому что EditText.textтребует editableв первую очередь неString

Динеш
источник