美文网首页旅行·在路上
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输入框

    在Android开发过程中,输入框(EditText)的使用相当频繁,如:用户输入账号、密码实现登录,聊天界面输入...

  • 关于输入框的细节

    1、输入框类型:包括信息输入框、注册、登录输入框、搜索输入框、原创输入框、对话输入框以及其它; 2、文本输入框使用...

  • 几个关于输入框的细节

    输入框的类型包括信息输入框、注册、登录输入框、搜索输入框、原创输入框、对话输入框等。文本输入框使用场景多,交互频次...

  • react 输入框双向数据绑定、设置输入框默认值、获取输入框中的

    一、 输入框双向数据绑定 二、 设置输入框默认值和获取输入框中的值 设置输入框默认值 获取输入框中的值

  • 微信小程序input的type类型

    text 文本输入框 number 数字输入框 idcard 身份证类型的输入框 digit 带小数点的数字输入框

  • set FastInputIME failed. use "d(

    必须在输入框才能清空输入框

  • web测试方法

    Web测试方法总结 一、输入框 1 1、字符型输入框:2 2、数值型输入框:2 3、日期型输入框:2 二、搜索功能...

  • Tailwind Component

    按钮(button) 带符号的按钮 输入框(input) 普通输入框 邮箱输入框 文本域(textarea) 搜索...

  • 文本输入框

    语法: 1、type:当type="text"时,输入框为文本输入框;当type="password"时,输入框为...

  • 测试总结

    输入框 字符型输入框 字符型输入框:英文全角、英文半角、数字、空、空格、特殊符号“~!@#¥%……&*?[]{}”...

网友评论

    本文标题:Android_EditText输入框

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