Java 如何在文本输入字段中添加星号

Java 如何在文本输入字段中添加星号,java,android,xml,android-layout,Java,Android,Xml,Android Layout,如何在条目中获得红色星号,以便在文本末尾(或文本中的任何位置)显示它,以指示它是必填字段 例如: 输入您的姓名* 上面的星号将是红色。为此,您需要使用SpannableStringBuilder和ForegroundColorSpan 另一种方法是: TextView text = (TextView)findViewById(R.id.text); String simple = "Enter your name "; String colored = "*"; SpannableStrin

如何在条目中获得红色星号,以便在文本末尾(或文本中的任何位置)显示它,以指示它是必填字段

例如:

输入您的姓名*


上面的星号将是红色。

为此,您需要使用SpannableStringBuilder和ForegroundColorSpan

另一种方法是:

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

String simple = "Enter your 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.setText(builder);


Use可以将上述代码与Edittext一起使用,并按语法设置提示。无法在InputExtLayout上设置红色astrik。

将此扩展用于AppCompativeText

fun AppCompatEditText.addAsteriskSign() {
  val colored = "*"
  val builder = SpannableStringBuilder()
  builder.append(this.hint)
  val start = builder.length
  builder.append(colored)
  val end = builder.length

  builder.setSpan(
       ForegroundColorSpan(Color.RED), start, end,
      Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
  )
  this.hint = builder

}

使用TextInputLayout或选中此选项设置您的EditText.setError(“某物”)可能与
fun AppCompatEditText.addAsteriskSign() {
  val colored = "*"
  val builder = SpannableStringBuilder()
  builder.append(this.hint)
  val start = builder.length
  builder.append(colored)
  val end = builder.length

  builder.setSpan(
       ForegroundColorSpan(Color.RED), start, end,
      Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
  )
  this.hint = builder