TextInputLayout实现登录界面

本文介绍了一个具体的Android应用示例,展示了如何使用TextInputLayout组件进行用户输入验证,并提供了布局文件及活动类代码,帮助开发者更好地理解并实现该组件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

compile 'com.android.support:design:26.+'

//布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.chenxiansheng.TextinputActivity">

    <android.support.design.widget.TextInputLayout
        android:id="@+id/a_textinputlayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <EditText
            android:id="@+id/a_editText1"
            android:hint="账号"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/a_textinputlayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >

        <EditText
            android:id="@+id/a_editText12"
            android:hint="密码"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.design.widget.TextInputLayout>

</LinearLayout>

//代码

public class TextinputActivity extends AppCompatActivity {
    /***
     * Design的输入容器(子控件需要包含EditText)
     */
    TextInputLayout mTextInputLayout;
    TextInputLayout mTextInputLayout2;
    /**
     * EditText输入框
     */
    EditText mEditText;
    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_textinput);
        mTextInputLayout=(TextInputLayout)findViewById(R.id.a_textinputlayout);
        mTextInputLayout2=(TextInputLayout)findViewById(R.id.a_textinputlayout2);
//        //设置hint提示
//        mTextInputLayout.setHint("请输入用户名");
        //获取TextInputLayout下的输入框
        mEditText=mTextInputLayout.getEditText();
        editText = mTextInputLayout2.getEditText();
        //设置对EditText输入的监听事件
//        if(!chen(mEditText.toString())){
//            mTextInputLayout.setErrorEnabled(true);
//            mTextInputLayout.setError("用户名不能小于6位");
//        }else{
//            mTextInputLayout.setErrorEnabled(false);
//        }
        mEditText.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) {
                //这儿判断操作,如果输入错误可以给用户提示
                if(s.length()<5){
                    mTextInputLayout.setErrorEnabled(true);
                    mTextInputLayout.setError("用户名不能小于6位");
                }else{
                    mTextInputLayout.setErrorEnabled(false);
                }
            }
            @Override
            public void afterTextChanged(Editable s) {

            }
        });

        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                //这儿判断操作,如果输入错误可以给用户提示
                if(charSequence.length()<3){
                    mTextInputLayout.setErrorEnabled(true);
                    mTextInputLayout.setError("用户名密码不能小于6位");
                }else{
                    mTextInputLayout.setErrorEnabled(false);
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

    }

//    private boolean chen(String pass){
//        return pass.length()>6;
//    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值