美文网首页旅行·在路上
Android_EditText输入框

Android_EditText输入框

作者: 书虫大王X | 来源:发表于2019-09-27 10:21 被阅读0次

    在Android开发过程中,输入框(EditText)的使用相当频繁,如:用户输入账号、密码实现登录,聊天界面输入文字等等。下面我们来简单了解一下输入框的属性和使用方法。

    一、简介:

    • EditText是TextView的子类,它继承了TextView的所有属性。继承关系:View-->TextView-->EditText 。点击查看TextView属性。
    • EditText特有的属性:
    属性 作用
    inputType 输入内容的格式
    letterSpacing 输入的内容之间的间距
    editable 设置是否可以编辑
    hint 设置默认提示文字
    paddingLeft 输入的文本与输入框左边的距离
    • 常用方法:
     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) {
                    //文本变化时
                }
    
                @Override
                public void afterTextChanged(Editable editable) {
                    //文本变化后(一般使用此方法)
    
                     //将变化后的文本转化为字符串并接收
                    String inputPassward = editable.toString();
                }
            });
    

    二、练习:

    效果图:


    效果图

    代码流程图:


    流程图

    代码:
    在xml文件中进行布局

    <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/bg" />
    
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请设置密码"
            android:textSize="40sp"
            android:textColor="@color/colorGray"
            android:layout_marginTop="90dp"
            android:layout_marginLeft="90dp"
            />
    
        <EditText
            android:id="@+id/edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="150dp"
            android:background="@drawable/lock"
            android:textColor="@color/colorAccent"
            android:textSize="@dimen/dimen_alert"
    
            android:paddingLeft="20dp"
            android:inputType="textPassword"
            android:maxLines="1"
            android:maxLength="6"
            android:cursorVisible="false"
            android:letterSpacing="0.5"
            />
    
    

    MainActivity中实现功能:

    
        EditText editText;
        TextView textView;
        String password;
        String firstInput;
        SharedPreferences sp;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            editText = findViewById(R.id.edit);
            textView = findViewById(R.id.text);
    
    //        获取资源文件名
    //        Resources resources = getResources();
            final String fileName = getResources().getString(R.string.file_name);
    
            sp = getSharedPreferences(fileName,0);
            password = sp.getString("pwd",null);
    
            if (password == null){
                textView.setText("请设置密码");
            }else {
                textView.setText("请输入密码");
            }
    
    //        监听内容改变的事件
            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) {
    
                }
    
                @Override
                public void afterTextChanged(Editable editable) {
                    String inputPassward = editable.toString();
                    if (inputPassward.length() == 6){
                        if (password == null){
                            if (firstInput == null){
                                firstInput = inputPassward;
                                textView.setText("请确认密码");
                                editText.setText("");
                            }else {
                                if (inputPassward.equals(firstInput)){
                                    textView.setText("密码设置成功");
                                    editText.setText("");
                                    SharedPreferences.Editor edit = sp.edit();
                                    edit.putString("pwd",firstInput);
                                    edit.commit();
                                    goToNext();
                                    textView.setText("请输入密码");
                                }else {
                                    textView.setText("两次密码不一样,请重新设置");
                                    firstInput = null;
                                    editText.setText("");
                                }
                            }
                        }else {
                            if (inputPassward.equals(password)){
                                textView.setText("解锁成功");
                                editText.setText("");
                                goToNext();
                                textView.setText("请输入密码");
                            }else {
                                textView.setText("密码错误,请重新输入");
                                editText.setText("");
                            }
                        }
                    }
                }
            });
    
        }
    }
    

    相关文章

      网友评论

        本文标题:Android_EditText输入框

        本文链接:https://www.haomeiwen.com/subject/mihfuctx.html