我只需要一个editText,我可以在其中同时设置Text和提示。 例如,我希望用户输入editText字符串,如用户#1234 在这个字符串中,用户#应该是文本之后的数字会有所不同,这样当用户尝试输入光标时,1234应显示为提示,#1234提示将在用户输入字符时消失。
请指导我如何做到这一点。
由于
答案 0 :(得分:2)
我设法通过一些技巧实现了这一点,并使用margin
和padding
这就是我做的事情
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp" >
<TextView
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="right"
android:text="user#" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="1234"
android:paddingLeft="40dp"
android:textSize="14sp" />
</RelativeLayout>
希望这会帮助你
答案 1 :(得分:1)
这在Android的默认EditText
中是不可能的,但如果想要实现这一点,你将不得不工作一点。
您可以使用名为Masked-EditText的库。阅读文档并了解如何使用它来解决您的目的。希望有所帮助。
[编辑]
我还有一个你绝对可以使用的技巧。在编辑文本上实施onChangeListener
。每次调用它时,都要运行一个函数。该函数应该获取editText
中的文本并获取子字符串(前5个字符)。如果子字符串匹配“user#”,则不执行任何操作。否则将editText中的文本替换为“user#”。哈哈!
答案 2 :(得分:0)
你可以用两种方式做到这一点
#1
将用户#的图片drawableLeft
放置到EditText
#2
使用RelativeLayout
将TextView
和EditText
一个放在另一个之上,以便在TextView
中显示EditText
中的文字,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_parent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="user#"
android:textColor="#aaaaaaaa"
android:textSize="30dip" />
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView1"
android:layout_alignBottom="@+id/textView1"
android:layout_toRightOf="@+id/textView1"
android:background="#00000000"
android:textSize="30dip">
</EditText>