• Android开发笔记(五)——EditText


    EditText也是TextView的一个子类,TextView和Button的一些属性在EditText中也同样适用。

    TextView是显示文字的一个控件,但是不可以编辑,EditText是可以输入的控件。

    activity_main.xml 中添加一个Button:

    <Button
        android:id="@+id/btn_edittext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="EditText"
        android:textAllCaps="false"
        />
    

    Button中的英文字母会自动进行大写转换, android:textAllCaps="false" 可以取消这个默认。
    接下来在 MainActivity.java 中声明这个控件:

    private Button mBtnEditText;
    

    添加一个新的activity名称叫 EditTextActivity ,此时 AndroidMainfest.xml 中会自动添加如下声明:

    <activity android:name=".EditTextActivity"></activity>
    

    如果没有添加则要自己手动添加,否则会跳转失败。
    之后要在 MainActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个点击事件,使其点击之后跳转到新的界面:

    mBtnEditText=findViewById(R.id.btn_edittext);
    mBtnEditText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //跳转到EditText的演示界面
            Intent intent=new Intent(MainActivity.this,EditTextActivity.class);
            startActivity(intent);
        }
    });
    

    常用属性

    hint => 文本框内提示
    textColorHint => 设置hint提示文字颜色
    inputType =>
      "none"//输入普通字符
      "text"//输入普通字符
      "textCapCharacters"//输入普通字符
      "textCapWords"//单词首字母大小
      textCapSentences"//仅第一个字母大小
      "textAutoCorrect"//前两个自动完成
      "textAutoComplete"//前两个自动完成
      "textMultiLine"//多行输入
      "textImeMultiLine"//输入法多行(不一定支持)
      "textNoSuggestions"//不提示
      "textUri"//URI格式
      "textEmailAddress"//电子邮件地址格式
      "textEmailSubject"//邮件主题格式
      "textShortMessage"//短消息格式
      "textLongMessage"//长消息格式
      "textPersonName"//人名格式
      "textPostalAddress"//邮政格式
      "textPassword"//密码格式
      "textVisiblePassword"//密码可见格式
      "textWebEditText"//作为网页表单的文本格式
      "textFilter"//文本筛选格式
      "textPhonetic"//拼音输入格式
      "number"//数字格式
      "numberSigned"//有符号数字格式
      "numberDecimal"//可以带小数点的浮点格式
      "phone"//拨号键盘
      "datetime"//日期+时间格式
      "date"//日期键盘
      "time"//时间键盘
    drawableLeft => 编辑框内左侧绘制图片资源,= Start | 也有Top Bottom Right
    drawablePadding => 图片padding
    lines => 占几行(显示上)
    digits => 设置只接收指定的文本内容
    textAlignment => center(居中),inherit(默认,居左边显示),viewStart(居左显示),viewEnd(居右显示),textStart(居左显示),textEnd(居右显示).
    extCursorDrawable => 光标颜色
    android:textScaleX => 文本水平缩放系数.
    android:typeface => hint字体
    maxLength => 最多接收文本长度
    maxHeight => 文本区域最大高度
    minHeight => 文本区域最小高度
    scrollHorizontally => 文本超出,是否出现横拉条
    ellipsize => 文字过长时,如何显示
      "start”开头省略
      ”end”结尾省略
      ”middle”中间省略
      ”marquee” 跑马灯

    简单登录界面的制作

    activity_edit_text.xml 中添加 EditTextButton 控件,具体属性设置如下:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="20dp"
        >
    
        <EditText
            android:id="@+id/et_1"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="20sp"
            android:textColor="#000000"
            android:hint="手机号"
            android:inputType="number"
            android:background="@drawable/bg_username"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:drawableLeft="@drawable/icon_user"
            android:drawablePadding="10dp"
            android:maxLines="1"
            android:layout_marginTop="50dp"
            />
    
        <EditText
            android:id="@+id/et_2"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="20sp"
            android:textColor="#000000"
            android:hint="密码"
            android:inputType="textPassword"
            android:layout_below="@id/et_1"
            android:layout_marginTop="15dp"
            android:background="@drawable/bg_username"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:drawableLeft="@drawable/icon_password"
            android:drawablePadding="10dp"
            android:maxLines="1"
            />
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_below="@id/et_2"
            android:layout_marginTop="40dp"
            android:text="登录"
            android:textColor="#000000"
            android:textSize="20sp"
            android:background="@drawable/bg_btn4"
            />
    
    </RelativeLayout>
    

    接下来在 EditTextActivity.java 中声明登录的 Button 控件:

    private Button mBtnLogin;
    

    之后要在 EditTextActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个点击事件,使其点击之后显示登录成功的字样:

    mBtnLogin=findViewById(R.id.btn_login);
    mBtnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(EditTextActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();
        }
    });
    

    具体效果如下:这里输入密码的时候手机录屏录不到o(╥﹏╥)o

    监听事件

    对输入内容变化的监听:
    这里对输入的手机号进行监听:
    EditTextActivity.java 中声明输入框的 EditText 控件:

    private EditText mEtUsername;
    

    之后要在 EditTextActivity.java 中的 onCreate 函数中使用 findViewById 找到该button,接着设置一个监听事件,实现可以监听输入内容,具体实现如下:

    mEtUsername=findViewById(R.id.et_1);
    mEtUsername.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            Log.d("edittext",s.toString());
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
        }
    });
    
    

    CharSequence s 就是当前输入框的内容。

    具体效果如下:

    可以看到,每当输入一个内容就可以打印出来,这就实现的对输入内容的监听。

  • 相关阅读:
    Caffe的solver参数介绍
    局部响应归一化(Local Response Normalization,LRN)
    caffe中的学习率的衰减机制
    Caffe常用层参数介绍
    ubuntu 终端无法启动:ImportError: cannot import name 'sysconfig' from 'distutils'
    Python集合模块collections
    Python中的random模块
    HTTP状态码
    云计算中的地域和可用区概念
    Dropout原理解析
  • 原文地址:https://www.cnblogs.com/yangdd/p/13288171.html
Copyright © 2020-2023  润新知