【android学习】EditText

TextView是EditText父类。

1,属性

1)输入格式

①inputType

设置文本的类型,用于帮助输入法显示合适的键盘类型。

    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"//时间键盘

②其他

--android:password="true"
密码格式。
代码中设置密码不可见:
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());

--android:phoneNumber="true"
电话号码的输入方式。 
--android:numeric
只接收数字。三种数字类型:integer(正整数)、signed(带符号整数,有正负)和decimal(浮点数)。 
--android:capitalize
设置英文字母大写类型。
 android:capitalize="cwj1987" 这样仅允许接受输入cwj1987,一般用于密码验证。
--android:digits
设置允许输入哪些字符。如“1234567890.+-*/% ()” 

EditText输入监听,小写字母自动转换为大写字母

2)输入字数控制

--android:macLines 
输入框的最大行数。
--android:minLines
--android:maxLength
限制显示的文本长度,超出部分不显示。
--android:ems
设置TextView的宽度为N个字符的宽度。
--android:maxEms
设置TextView的宽度为最长为N个字符的宽度,超出会换行。与ems同时使用时覆盖ems选项。 
editText.setFilters(new InputFilter[]{newInputFilter.LengthFilter(100)});

3)IME动作

①介绍

--android:imeActionId
设置IME动作ID。 
--android:imeActionLabel
设置IME动作标签。 
--android:imeOptions
附加功能,设置输入法右下角IME动作与编辑框相关的动作,如:
actionDone:效果:完成;对应常量EditorInfo.IME_ACTION_DONE
actionUnspecified:回车键;对应常量EditorInfo.IME_ACTION_UNSPECIFIED 
actionNone:没有任何提示;对应常量EditorInfo.IME_ACTION_NONE
actionGo:去往、开始;对应常量EditorInfo.IME_ACTION_GO
actionSearch: 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 
actionSend: 发送,对应常量EditorInfo.IME_ACTION_SEND
actionNext: 下一个,对应常量EditorInfo.IME_ACTION_NEXT
flagNoExtractUi:回车键;使软键盘不全屏显示,只占用一部分屏幕。

②android:imeOptions实现

i>给EditText设置属性

android:imeOptions="actionSearch"

ii>上述属性不生效,还需要设置其它属性:

android:lines="1"
android:inputType="text"

iii>设置点击监听

 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                if (i == EditorInfo.IME_ACTION_SEARCH) {
                    clickSearchBtn();
                }
                return false;
            }
        });

4)其他

--android:editorExtras
设置文本的额外的输入数据。  
--android:hintText
为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。 
--android:privateImeOptions
设置输入法选项。
--android:autoText
如果设置,将自动执行输入值的拼写纠正。
--android:inputMethod
为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。 

2,监听

1)输入监听

et.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {            
            // s是文本改变前的内容  
            // start是文本改变操作后输入光标所在位置  
            // count删除内容时是删除字符的个数,增加内容时为0  
            // after增加内容时是增加字符的个数,删除内容时为0  
            // 通过组件索引获得的text内容是改变前的  
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int count, int after) {
            // s是文本改变后的内容  
            // start是文本改变操作后输入光标所在位置  
            // count增加内容时是增加字符的个数,删除内容时为0  
            // after删除内容时是删除字符的个数,增加内容时为0  
            // 通过组件索引获得的text内容是改变后的 
            }

            @Override
            public void afterTextChanged(Editable editable) {// // editable是文本改变后的内容  

            }
        });

2)点击监听

不可编辑但可点击,隐藏光标

editText.setCursorVisible(false);
editText.setFocusable(false);
editText.setFocusableInTouchMode(false);

3,软键盘

1)IME设置

参见前文IME属性介绍。

2)软键盘弹出设置

在AndroidManifest.xml对应的activity中设置:

android:windowSoftInputMode="adjustPan"   键盘就会覆盖屏幕
android:windowSoftInputMode="stateVisible|adjustResize"   屏幕整体上移

–stateUnspecified
默认设置:软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。
–stateUnchanged
软键盘被保持上次的状态。
–stateHidden
软键盘隐藏。
–stateAlwaysHidden
软键盘总是被隐藏的。
–stateVisible
键盘是可见的。
–stateAlwaysVisible
软键盘总是可见的。
–adjustUnspecified
系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。
–adjustResize(压缩模式)
当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。
–adjustPan(平移模式)
当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时, 窗口就会进行平移。

3)软键盘的调起、关闭

i>一进入界面时隐藏软键盘
在EditText父控件添加如下:

android:focusableInTouchMode="true"

ii>调用数字键盘并设置输入类型和键盘为英文

etNumber.setInputType(InputType.TYPE_CLASS_NUMBER); //调用数字键盘
rlEditText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);//设置输入类型和键盘为英文 或者:android:inputType="textUri|textMultiLine"

iii>android:focusable=”false”//键盘永远不会弹出

<activity android:name=".AddLinkman"android:windowSoftInputMode="adjustUnspecified|stateHidden"/>//不自动弹出键盘

//关闭键盘(比如输入结束后执行) 
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(etEditText.getWindowToken(), 0);

//自动弹出键盘
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);

etEditText.requestFocus();//让EditText获得焦点,但是获得焦点并不会自动弹出键盘

4,光标

edittext.requestFocusFromTouch();//让光标放入到点击位置。 
edittext.requestFocus();//默认方式获得焦点

EditText editor = (EditText)getCurrentView();
//光标处插入 
int cursor = editor.getSelectionStart(); 
editor.getText().insert(cursor,delta); 

//让光标移到末端(这样文字就会向前显示) 
et.setText(text); et.setSelection(text.length());

--android:cursorVisible="false" 
隐藏光标
--android:background="#00000000"
不要文本框背景 
--android:freezesText 
设置保存文本的内容以及光标的位置
--android:selectAllOnFocus
如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。

5,应用

EditText、TextView左边/顶部图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值