砖垛之edittext

默认隐藏输入弹窗
在当前edtxet的上一级布局里加上

 android:focusable="true"
 android:focusableInTouchMode="true"

还可以在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性

android:windowSoftInputMode="adjustUnspecified|stateHidden"
android:configChanges="orientation|keyboardHidden"

隐藏边框和下划线

 android:background="@null"

hint位置

android:gravity="top|left"

不可编辑
1.不可编辑但是会弹出输入法

Android:editable="false" 

2.不可编辑同时不会弹出输入法

android:focusable="false"

指定输入类型

1.限制输入类型

代码:et_lxnr.setInputType(InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE);
xml:android:inputType="number"

 //文本类型,多为大写、小写和数字符号。 
    android:inputType="none"//输入普通字符
    android:inputType="text"//输入普通字符
    android:inputType="textCapCharacters"//输入普通字符
    android:inputType="textCapWords"//单词首字母大小
    android:inputType="textCapSentences"//仅第一个字母大小
    android:inputType="textAutoCorrect"//前两个自动完成
    android:inputType="textAutoComplete"//前两个自动完成
    android:inputType="textMultiLine"//多行输入
    android:inputType="textImeMultiLine"//输入法多行(不一定支持)
    android:inputType="textNoSuggestions"//不提示
    android:inputType="textUri"//URI格式
    android:inputType="textEmailAddress"//电子邮件地址格式
    android:inputType="textEmailSubject"//邮件主题格式
    android:inputType="textShortMessage"//短消息格式
    android:inputType="textLongMessage"//长消息格式
    android:inputType="textPersonName"//人名格式
    android:inputType="textPostalAddress"//邮政格式
    android:inputType="textPassword"//密码格式
    android:inputType="textVisiblePassword"//密码可见格式
    android:inputType="textWebEditText"//作为网页表单的文本格式
    android:inputType="textFilter"//文本筛选格式
    android:inputType="textPhonetic"//拼音输入格式
    //数值类型
    android:inputType="number"//数字格式
    android:inputType="numberSigned"//有符号数字格式
    android:inputType="numberDecimal"//可以带小数点的浮点格式
    android:inputType="phone"//拨号键盘
    android:inputType="datetime"//日期+时间格式
    android:inputType="date"//日期键盘
    android:inputType="time"//时间键盘

限制输入长度(如限制输入最大长度10)

代码:et_lxnr.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
xml:android:maxLength="10"

限制输入固定的某些字符(如123456xyz)

代码:et_lxnr.setKeyListener(DigitsKeyListener.getInstance(“123456xyz”);
xml:android:digits="@string/input_num_character"

监听输入变化

mEditText = (EditText) findViewById(R.id.et);
        /**
         * 监听EditText框中的变化
         */
        mEditText.addTextChangedListener(new TextWatcher() {
            private CharSequence temp;
            private int editStart;
            private int editEnd;

            /**
             * 文本变化之前
             * @param s
             * @param start
             * @param count
             * @param after
             */
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                temp = s;
            }

            /**
             * 文本变化中
             * @param s
             * @param start
             * @param before
             * @param count
             */
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                mTextView.setText("输入的结果为:"+s);
            }

            /**
             * 文本变化之后
             * @param s
             */
            @Override
            public void afterTextChanged(Editable s) {
                editStart = mEditText.getSelectionStart();
                editEnd = mEditText.getSelectionEnd();
                if (temp.length() > 10) {//限制长度
                    Toast.makeText(MainActivity.this,
                            "输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
                            .show();
                    s.delete(editStart - 1, editEnd);
                    int tempSelection = editStart;
                    mEditText.setText(s);
                    mEditText.setSelection(tempSelection);
                }

            }
        });

获取焦点
1.监听

EditText searchView = (EditText) findViewById(R.id.search_text);
searchView.setOnFocusChangeListener(new android.view.View.
		OnFocusChangeListener() {
	@Override
	public void onFocusChange(View v, boolean hasFocus) {
		if (hasFocus) {
			// 此处为得到焦点时的处理内容
		} else {
			// 此处为失去焦点时的处理内容
		}
	}
});

2.设置

searchView.setFocusable(true);
searchView.setFocusableInTouchMode(true);
searchView.requestFocus();
 
searchView.clearFocus();//失去焦点
searchView.requestFocus();//获取焦点

设置光标位置

EditText et = (EditText)findViewById(R.id.inbox);
et.setSelection(et.getText().length());

修改光标颜色

1.设置和字体颜色一样

android:textCursorDrawable="@null",//"@null"作用是让光标颜色和textcolor一样

2.自定义颜色等

(1)新建drawable文件

<?xml version="1.0" encoding="utf-8"?>  
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">  
    <size android:width="1dp" />  
    <solid android:color="#008000"  />  
</shape> 

(2)设置

android:textCursorDrawable="@drawable/color_cursor"

属性

android:layout_gravity="center_vertical"
设置控件显示的位置:默认top,这里居中显示,还有bottom
android:hint="请输入数字!"
设置显示在空间上的提示信息
android:numeric="integer"
设置只能输入整数,如果是小数则是:decimal
android:singleLine="true"
设置单行输入,一旦设置为true,则文字不会自动换行。
android:password="true"
设置只能输入密码
android:textColor = "#ff8c00"
字体颜色
android:textStyle="bold"
字体,bold, italic, bolditalic
android:textSize="20dip"
大小
android:capitalize = "characters"
以大写字母写
android:textAlign="center"
EditText没有这个属性,但TextView有
android:textColorHighlight="#cccccc"
被选中文字的底色,默认为蓝色
android:textColorHint="#ffff00"
设置提示信息文字的颜色,默认为灰色
android:textScaleX="1.5"
控制字与字之间的间距
android:typeface="monospace"
字型,normal, sans, serif, monospace
android:background="@null"
空间背景,这里没有,指透明
android:layout_weight="1"
权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。
android:textAppearance="?android:attr/textAppearanceLargeInverse"
文字外观,这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。不知道这样理解对不对?


通过EditText的layout xml文件中的相关属性来实现:

  1. 密码框属性 android:password="true"  这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。

  2. 纯数字 android:numeric="true" 这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入

  3. 仅允许 android:capitalize="cwj1987" 这样仅允许接受输入cwj1987,一般用于密码验证
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值