手记

android 文本编辑框详解

文本编辑框,非常普遍的一个系统控件。一般我们我们使用的时候会用到其中的几个属性,帮助大家了解一下。

1、singleLine 文本是否单行显示
2、hint 默认提示
3、editable 是否可编辑,但是现在好像要被废弃了。
4、password 是否是密码,ture 就显示*号 但是这个也要被废弃了。

Drawable drawable;
        if (pwdShow) {
//设置密码显示
            password.setTransformationMethod(PasswordTransformationMethod.getInstance());
            drawable = getDrawableRes(R.drawable.item_login_invisible);
        } else {
//显示密码隐藏
            password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
            drawable = getDrawableRes(R.drawable.item_login_visible);
        }
        pwdShow = !pwdShow;
        drawable.setBounds(0, 0, drawable.getMinimumWidth(),
            drawable.getMinimumHeight());
                //对文本框设置一个图片资源。4个参数分别代表:左/上/右/下
                //(@Nullable Drawable left, @Nullable Drawable top, @Nullable Drawable right, @Nullable Drawable bottom) 
        password.setCompoundDrawables(null, null, drawable, null);
        password.setSelection(password.getText().length());//设置选中

通常情况下,我们的编辑框都是有一定意义的,例如,我们的编辑框达到的功能是搜索,又或者是发送内容。那我们此时怎么来使点击的编辑框弹出来的输入法的回车键变成我们所需要的呢。
编辑框中有一个属性 imeOptions 它有很多选择 :actionsearch 、actionsend等等都是可以达到我们的要求。
接下来我们就是要达到点击对应的按钮做我们的操作,那么这个监听的事件是什么呢。请看代码:

  exittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event)  {
                if (actionId== EditorInfo.IME_ACTION_SEND )//你想实现的按钮名称的ID
                {
                    String contentStr=chatET.getText().toString();
                    if ("".equals(contentStr)){
                        toast("内容为空!");
                        return true;
                    }
                    //do something you want
                    return true;
                }
                return false;
            }
        });

就是要对你的文本框设置这个监听。这里一定要注意:此时文本框的singleline属性一定要设置为true 否则会没有效果。

说到文本框,这里我想说,我们很多人实现的功能都会带有文本框的内容的显示和消失。
方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)
[java] view plain copy print?
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)
[java] view plain copy print?
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
[java] view plain copy print?
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

这里的参数view.getWindowToken() 要注意了,这个view要是你所使用弹出这个文本框的edittext
今天就到这里了。谢谢。希望有帮助!

1人推荐
随时随地看视频
慕课网APP