我希望我的应用能够在不同的时间在edittext中显示不同的提示,所以我必须每次在语法上如下设置提示。
editText.setHint("Hint 1");
但是问题是,当我开始键入提示时,提示开始消失。我想每次都显示此提示。如果我在xml中设置提示,则键入时不会消失,但在我的情况下该如何做。
要么您应该考虑更改为TextInputLayout(强烈建议使用此Here is an example too.)
或
使用EditText作为相对布局,并使用TextView作为内部提示。根据需要更改textview。
<RelativeLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some text"
android:layout_alignParentLeft="true"
android:id="@+id/editText1"
android:layout_gravity="center"
/>
<TextView
android:id="@+id/text_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="yourHint"
android:textSize="14sp"
android:layout_marginRight="10dp"
android:textColor="@color/customColor"
/>
</RelativeLayout>
您的期望是不可能的,因为我们必须了解用户在editext上的书写方式。现在几天https://github.com/hardik-trivedi/FloatingLabel这种类型的提示比较流行,您可以尝试上面的链接。
TextInputLayout
为EditText
提供强大的素材特征。主要功能是浮动提示。在此处查看文档https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html
您在编辑文本中键入文本时无法显示提示在android中具有默认功能
<android.support.design.widget.TextInputLayout
android:theme="@style/TextLabel"
android:id="@+id/input_layout_username"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/username_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:hint="Email Address"
android:inputType="textEmailAddress"
android:translationY="10dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textSize="@dimen/font_13"/>
</android.support.design.widget.TextInputLayout>
这里android提供默认功能,同时在编辑文本中输入文本,在编辑文本上方的提示,您也可以通过编程设置提示]
EditText. setHint ("Hint 1");
最佳方法是使用TextInputLayout。
<!--EMAIL-->
<android.support.design.widget.TextInputLayout
android:id="@+id/email_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/TextLabel">
<EditText
android:id="@+id/etUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_screen_email_hint"
android:imeOptions="actionNext"
android:inputType="textEmailAddress"
android:maxLines="1"
android:nextFocusDown="@+id/etPassword"
android:singleLine="true"
android:textColor="@android:color/white"
android:textColorHighlight="@android:color/white"
android:textColorHint="@android:color/white" />
</android.support.design.widget.TextInputLayout>