将颜色设置为EditText占位符的一部分

时间:2014-12-05 12:03:52

标签: java android

我有一个强制性EditText,其占位符的强制符号*必须为红色。帮助这些家伙。

Like this

2 个答案:

答案 0 :(得分:6)

请尝试使用此discussion以获取更多详细信息。

TextView text = (TextView)findViewById(R.id.text);

String simple = "First Name ";
String colored = "*";
SpannableStringBuilder builder = new SpannableStringBuilder();

builder.append(simple);
int start = builder.length();
builder.append(colored);
int end = builder.length();

builder.setSpan(new ForegroundColorSpan(Color.RED), start, end, 
                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

text.setHint(builder);

答案 1 :(得分:-1)

创建您自己的自定义视图,其结构类似于

<RelativeLayout 
    android:layout_width="100dp" 
    android:layout_height="40dp">
    <EditText
        android:layout_width="100dp" 
        android:layout_height="40dp"/>
    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="40dp" 
        android:id="@+id/placeholder_left"
        android:text="First name"/>
    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="40dp" 
        android:layout_toRightOf="@+id/placeholder_left" 
        android:textColor="@color/red"
        android:text="*"/>

添加逻辑以在EditText中更改文本时处理“占位符”TextView的可见性。