Android добавляет текст-заполнитель в EditText


365

Как добавить текст- заполнительEditText в класс, которого нет в XML?

У меня есть следующий EditTextкод в моем коде, который будет показан в алерте:

    final EditText name = new EditText(this);

1
Что вы подразумеваете под заполнителем?
LuxuryMode 22.11.11

4
Это текст, который написан светлым цветом на текстовых панелях, и когда пользователь нажимает на текстовую панель, чтобы написать что-то, этот текст исчезнет.
Мона

Ответы:


832

Ах хорошо. То, что вы ищете, это setHint(int). Просто передайте идентификатор ресурса строки из вашего xml, и все готово.

введите описание изображения здесь

РЕДАКТИРОВАТЬ

А в XML это просто android:hint="someText"


6
Спасибо! Я не знал, как они называют это в Android, я просто знаю, что на iOS это называется заполнителем.
Мона

39
Он широко известен как заполнитель, но, конечно, android отличается только тем, чтобы быть другим;)
Джо Махер

21

android:hint="text" предоставляет пользователю информацию о том, что ему нужно заполнить, в частности editText

например: - у меня есть два edittext один для числового значения и другой для строкового значения. мы можем установить подсказку для пользователя, чтобы он мог понять, какую ценность он должен дать

android:hint="Please enter phone number"
android:hint="Enter name" 

после запуска приложения эти два edittext покажут введенную подсказку, после нажатия на редактировать текст, он идет, и пользователь может ввести то, что он хочет (см. изображение Luxurymode)


Это называется подсказка в Android.
Монти

11

В вашей деятельности

<EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:background="@null"
                android:hint="Text Example"
                android:padding="5dp"
                android:singleLine="true"
                android:id="@+id/name"
                android:textColor="@color/magenta"/>

введите описание изображения здесь


7

Это как сделать ввод пароля с подсказкой, которая не конвертируется в * !!.

По XML:

android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."

спасибо: манго и Rjrjr за понимание: D.


5

В Android Studio вы можете добавить подсказку (Place holder) через графический интерфейс. Сначала выберите поле EditText в представлении конструктора. Затем нажмите на дерево компонентов слева от IDE (обычно оно есть, но оно может быть свернуто). Там вы можете увидеть свойства выбранного EditText. Найти поле подсказки, как показано ниже

введите описание изображения здесь

Там вы можете добавить подсказку (Placeholder) в EditText


3

Если вы имеете в виду место, где вы добавите его в макете. Вы можете определить контейнер как FrameLayout и добавить этот EditText к нему при его создании.

<LinearLayout xmlns=".."/>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/container" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

FrameLayout layout = (FrameLayout) findViewById(R.id.container);
layout.addView(name);

1

Вы должны использовать атрибут андроида: подсказка

<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>

В Android Studio вы можете переключиться из XML -> Представление дизайна и щелкнуть Компонент в макете, в данном случае поле EditText. Это покажет все применимые атрибуты для этого компонента GUI. Это будет удобно, когда вы не знаете обо всех атрибутах, которые там есть.

Вы будете удивлены, увидев, что EditText имеет более 140 атрибутов для настройки.


0

Если вы хотите вставить текст в представление EditText, которое остается там после выбора поля (в отличие от поведения подсказки), сделайте следующее:

В Java:

// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")

В Котлине:

// Cast your EditText into a TextView
// Like this
(findViewById(R.id.email) as TextView).text = "Your Text"
// Or simply like this
findViewById<TextView>(R.id.email).text = "Your Text"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.