如何在不在XML中的类中向EditText
添加placeholder文本?
我的代码中有以下EditText
,它将在alertdialog中显示:
final EditText name = new EditText(this);
答案 0 :(得分:760)
啊,好的。您要找的是setHint(int)
。只需从你的xml传入一个字符串的资源ID,你就可以了。
在XML中,它只是android:hint="someText"
答案 1 :(得分:18)
android:hint="text"
为用户提供了他需要填写的信息editText
例如: - 我有两个edittext,一个用于数值,另一个用于字符串值。我们可以为用户设置一个提示,这样他就可以理解他需要提供什么价值
android:hint="Please enter phone number"
android:hint="Enter name"
运行应用程序后,这两个edittext将显示输入的提示,点击编辑文本后,用户可以输入他想要的内容(参见luxurymode image)
答案 2 :(得分:10)
在您的活动中
<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"/>
答案 3 :(得分:7)
如何输入具有未转换为* !!的提示的输入密码。
在XML上:
android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."
感谢:芒果和rjrjr的见解:D。
答案 4 :(得分:5)
在Android Studio中,您可以通过GUI添加提示(占位符)。首先在设计器视图上选择EditText字段。然后单击IDE的组件树左侧(通常它在那里,但它可能在那里最小化)在那里你可以看到所选EditText的属性。找到提示字段,如下图所示
在那里你可以添加提示(占位符)到EditText
答案 5 :(得分:3)
如果您指的是将其添加到布局中的位置。 您可以定义一个像FrameLayout这样的容器,并在创建它时将其添加到该容器中。
<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);
答案 6 :(得分:1)
您必须使用android:hint属性
<EditText
android:id="@+id/message"
android:hint="<<Your placeholder>>"
/>
在Android Studio中,您可以从XML->设计视图切换,然后单击布局中的Component(在这种情况下为EditText字段)。 这将显示该GUI组件的所有适用属性。 当您不知道其中的所有属性时,这将很方便。
您会惊讶地发现EditText具有140多个自定义属性。
答案 7 :(得分: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"