【Android】关于EditText

2017-03-14  本文已影响28人  吃吃吃鱼呀

这是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后面增加这个红底白色感叹号。


数据校验1

点击共色的感叹号❗️,就有如下的提示:

数据校验2

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上出现一个图像:

点击一下

然后可以继续添加:

点击两下
上一篇 下一篇

猜你喜欢

热点阅读