TextInputLayout 和 TextInputEditText 的简单介绍以及使用

TextInputLayout 和 TextInputEditText 是属于 design 包里面的控件

呐,就是这个:compile 'com.android.support:design:26.0.0-alpha1'

这两者要结合使用,其实只用 TextInputLayout ,然后 TextInputEditText 用 EditText 替换好像也可以。

下面来看一个示例代码咯

布局文件如下:




    

        

    

    

        

    


 Activity的代码如下

    private TextInputLayout userNameLayout;
    private TextInputEditText userName;

    private TextInputLayout passwdLayout;
    private TextInputEditText passwd;

    userNameLayout = (TextInputLayout) findViewById(R.id.userNameLayout);
    userName = (TextInputEditText) findViewById(R.id.userName);
    userNameLayout.setHint("请输入账号");
    userName.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() < 3) {
                userNameLayout.setErrorEnabled(true);
                userNameLayout.setError("用户名不能小于3位");
            } else {
                userNameLayout.setErrorEnabled(false);
            }
        }
    });


    passwdLayout = (TextInputLayout) findViewById(R.id.passwdLayout);
    passwdLayout.setHint("请输入密码");
    passwd = (TextInputEditText) findViewById(R.id.passwd);
    passwd.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() < 3) {
                passwdLayout.setErrorEnabled(true);
                passwdLayout.setError("密密不222能小于3位");
            } else {
                passwdLayout.setErrorEnabled(false);
            }
        }
    });

    }

其实也没什么,

主要的代码也就几行

userNameLayout.setHint("请输入账号");

这行代码,就是设置提示信息

 

passwdLayout.setErrorEnabled(true);

这行表示,启用错误提示,相应的,传入false就表示关闭错误提示。

 

passwdLayout.setError("密密不222能小于3位");

这个表示,具体的错误提示

 

转载于:https://www.cnblogs.com/fwling/p/7197545.html

你可能感兴趣的:(移动开发)