edittext"/>
砖垛之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*/@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {temp = s;}/*** 文本变化中* @param s* @param start* @param before* @param count*/@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {mTextView.setText("输入的结果为:"+s);}/*** 文本变化之后* @param s*/@Overridepublic 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() {@Overridepublic 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="" 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,一般用于密码验证
更多推荐
砖垛之edittext
发布评论