Android_EditText输入框

在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文件中进行布局



    

    

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输入框)