美文网首页
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