这是EditText的一些小内容,自己之前没有使用过,权当记录。
1、EditText的数据校验
这里的数据校验,场景是用在登录的时候之类的,当然也可以在其他地方。
当输入完之后,EditText上焦点转移,就会触发校验判断的代码:
et1 = (EditText) findViewById(R.id.edittext1);
et1.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
if(!arg1){
String s = et1.getText().toString();
if(s.length()<5 || s.length()>10){
et1.setError("长度不符合5-10位");
}
}
}
});
看我写的简单代码中,如果输入的字符串少于5位时,就会执行et1.setError(),这个的效果就是在et后面增加这个红底白色感叹号。
点击共色的感叹号❗️,就有如下的提示:
2、EditText的中插入图片
就是例如我需要在EditText中插入一个表情符号:
(说起来大概会很简单,就是用SpannableString来设置复合文本)
准备工作:
et2 = (EditText) findViewById(R.id.edittext2);
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(this);
点击事件插入图片:
@Override
public void onClick(View arg0) {
// 定义一个位图对象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//定义一个可输入EditText的字符串对象
//SpannableString很关键
SpannableString span= new SpannableString("pic");
//将可输入EditText的字符串对象替换成位图对象
ImageSpan imaSpan =new ImageSpan(MainActivity.this,bitmap);
span.setSpan(imaSpan, 0, 3, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
et2.append(span);
}
然后我们就可以看到效果,点击一下后,EditText上出现一个图像:
然后可以继续添加: