美文网首页
Android开发中的EditText用法

Android开发中的EditText用法

作者: 黑铁选手 | 来源:发表于2019-09-21 22:54 被阅读0次

    目的

    掌握Android开发中的EditText的使用,相关知识和如何跳转界面,以及实现PIN解锁功能

    相关技术、及其使用

    1、EditText的相关属性
    (1)background :设置文本文件的背景视图
    (2)centerHorizontal:居中显示

     android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/main"
            android:layout_centerHorizontal="true"
    

    (3)below:在谁的下面显示
    (4)padding:控件内边距

         android:layout_below="@+id/tv_alert"
            android:layout_marginTop="30dp"
            android:paddingLeft="50dp"
    

    (5)inputType:输入的文本类型
    (6)textColor和textSize:输入文本的颜色和大小

     android:textColor="@color/colorGray"
            android:textSize="@dimen/dimen_textView"
            android:inputType="textPassword"
    

    (7)maxLength和maxLines:输入文本的长度和文本的行数
    (8)letterSpacing:输入文本之间的间隔距离

    android:maxLength="6"
            android:maxLines="1"
            android:cursorVisible="false"
            android:letterSpacing="0.6"
    

    2、实现PIN解锁功能
    (1)xml配制文件里面添加背景图片,文本提示框和文本输入框,并添加相应id方便代码调用

    (2)onCreate方法里面通过findViewById获取xml控件并全局化

     //获取xml的控件 并全局化
        private TextView mTextView;
        private EditText mEditText;
        //设置原始密码
        private String password;
        //记录第一次输入密码的值
        private String firstInput;
      mTextView = findViewById(R.id.tv_alert);
            mEditText = findViewById(R.id.et_password);
    
    

    (3)通过getResources()方法获取保存密码的文件资源(管理资源对象)

     //获取保存的密码
            //获取管理资源对象Resource
            Resources res = getResources();
            //通过这个对象获取string.xml里面对应的字符串
            String fileName = res.getString(R.string.password_file_name);
    

    (4)通过SharedPreferences 来获取保存密码的文件,并找到对应的value并显示提示文本

      //获取共享的sp对象:1、文件不存在就创建  2、文件存在就打开
            final SharedPreferences sp = getSharedPreferences(fileName,MODE_PRIVATE);
            //通过key获取对应的value
            password = sp.getString("pwd",null);
    
            //显示提示文本
            if(password == null){
                mTextView.setText("请设置密码");
            }else {
                mTextView.setText("请输入密码");
            }
    

    (5)用addTextChangedListener监听内容改变的事件在afterTextChanged方法里面判断密码设置与否,输入正确与否

     @Override
                public void afterTextChanged(Editable editable) {
                    //获取文本内容
                    String inputPassword = editable.toString();
    
                    //判断是不是6个
                    if(inputPassword.length() == 6){
                        //判断是不是设置密码
                        if(password == null){
                            //设置密码
                            if(firstInput ==  null){
                                //设置密码的第一次输入
                                firstInput = inputPassword;
    
                                //提示确认密码
                                mTextView.setText("请确认密码");
    
                                //清空
                                mEditText.setText("");
                            }else {
                                //确认密码
                                if(firstInput.equals(inputPassword)){
                                    //两次密码一致
                                    mTextView.setText("设置密码成功");
                                    //保存密码
                                    SharedPreferences.Editor editor = sp.edit();
                                    editor.putString("pwd",firstInput);
                                    editor.commit();//保存
                                }else {
                                    //密码不正确
                                    mTextView.setText("两次密码不一致,请重新输入");
                                    //清空
                                    firstInput = null;
                                    mEditText.setText("");
                                }
                            }
                        }else {
                            //密码设置过了
                            if(inputPassword.equals(password)){
                                //密码正确
                                mTextView.setText("密码正确");
                                //跳转
                                goToNext();
                            }else {
                                //不正确
                                mTextView.setText("密码错误,请重新输入");
                                //清空
                                mTextView.setText("");
                            }
    
                        }
                    }
                }
            });
    

    (6)通过创建goToNext方法跳转界面
    (1.1)创建第二个界面
    (1.2)创建Intent确定跳转界面

    private void goToNext(){
            //创建一个Intent确定跳转界面
            //1、显示意图 2、隐式意图(系统界面)
            Intent intent = new Intent(this,SecendActivity.class);
    
            //跳转
            startActivity(intent);
        }
    

    PS

    从开学到今天已经超过一周的事件没有学习Android开发今天学的有点生疏,但是,今天的知识还是挺简单的就学习一个EditText的操作和SharePereferenc 和TextChangedListenr监听器的使用 。感觉今天学的东西虽然依旧比较模糊但是还是能够听得懂。

    相关文章

      网友评论

          本文标题:Android开发中的EditText用法

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