Android中如何给EditText添加占位文本

435

如何在不在XML中的类中添加 占位符 文本到 EditText 中?

我在代码中有以下的 EditText,它将在警告对话框中显示:

    final EditText name = new EditText(this);

1
占位符是什么意思? - LuxuryMode
4
当用户点击文本框以写入内容时,会出现浅色文本,该文本将消失。 - Mona
8个回答

950

好的,您需要的是 setHint(int)。只需传递来自xml的字符串资源id即可。

enter image description here

编辑

在XML中,“android:hint =“ someText””即可。


7
谢谢!我不知道在安卓中它们叫什么,我只知道在iOS中它被称为“占位符”。 - Mona
63
它被普遍称为占位符,但当然安卓要与众不同 ;) - Joe Maher

26

android:hint="文本" 提供给用户一个提示,告诉他需要在特定的 editText 中填写什么内容。

例如:我有两个 edittext,一个是数字值,另一个是字符串值。我们可以为用户设置一个提示,以便他了解需要提供什么值。

android:hint="Please enter phone number"
android:hint="Enter name" 
在运行应用程序后,这两个编辑框将显示输入的提示信息。在单击编辑框后,光标会进入其中,用户可以输入所需内容(请参见luxurymode图像)。

这在Android中被称为提示。 - Monty

12

在你的活动中

<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"/>

在此输入图片描述


9

您需要使用android:hint属性

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

在Android Studio中,您可以从XML视图切换到设计视图并点击布局中的组件,例如此处的EditText字段。这将显示该GUI组件的所有适用属性。当您不知道所有可用属性时,这将非常方便。您可能会惊讶地发现,EditText有超过140个自定义属性。

7

如何创建带有密码提示而不被转换为*的输入密码!!

在 XML 中:

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

感谢mango和rjrjr提供的见解:D。

5
在 Android Studio 中,您可以通过 GUI 添加提示(占位符)。首先,在设计视图中选择 EditText 字段。然后,在 IDE 左侧单击“组件树”(通常在那里,但可能最小化了)。您可以看到所选 EditText 的属性。如下图所示,找到“提示”字段。

enter image description here

在那里,您可以为 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视图内插入文本并使其保留在选定字段之后(不像提示那样行为),请执行以下操作:
在Java中:
// Cast Your EditText as a TextView
((TextView) findViewById(R.id.email)).setText("your Text")

在 Kotlin 中:
// 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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接