尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Android入门教程 | EditText 用户输入

Android入门教程 | EditText 用户输入 EditText 监听回车使用EditText时有时候我们会需要监听输入的回车以做出一些操作。 或者需要把回车变成“搜索”“发送”或“完成”等等。EditText 为我们提供了一个属性 imeOptions 用来替换软键盘中 enter 键的外观如actionGo 会使外观变成“前往”。 需要同时设置android:inputTypetext。EditTextandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:imeOptionsactionGoandroid:inputTypetext/常用的几个属性以及替换的文本外观属性说明对应静态变量actionUnspecified未指定EditorInfo.IME_ACTION_UNSPECIFIEDactionNone动作EditorInfo.IME_ACTION_NONEactionGo去往EditorInfo.IME_ACTION_GOactionSearch搜索EditorInfo.IME_ACTION_SEARCHactionSend发送EditorInfo.IME_ACTION_SENDactionNext下一项EditorInfo.IME_ACTION_NEXTactionDone完成EditorInfo.IME_ACTION_DONE设置的方法可以在布局文件中设置android:imeOptionsactionNext或者在代码中mUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT);接下来设置回车按键的监听事件setOnEditorActionListeneret1.setOnEditorActionListener(mOnEditorActionListener);// ......privateTextView.OnEditorActionListener mOnEditorActionListenernewTextView.OnEditorActionListener(){OverridepublicbooleanonEditorAction(TextView v,int actionId,KeyEvent event){Log.d(TAG,actionId: actionId);Log.d(TAG,event: event);returnfalse;}};如果 onEditorAction 返回 true表示消费调这个事件。上面的 actionId 对应的是android.view.inputmethod.EditorInfo中的常量。publicstaticfinal intIME_ACTION_UNSPECIFIED0x00000000;publicstaticfinal intIME_ACTION_NONE0x00000001;publicstaticfinal intIME_ACTION_GO0x00000002;publicstaticfinal intIME_ACTION_SEARCH0x00000003;publicstaticfinal intIME_ACTION_SEND0x00000004;publicstaticfinal intIME_ACTION_NEXT0x00000005;publicstaticfinal intIME_ACTION_DONE0x00000006;publicstaticfinal intIME_ACTION_PREVIOUS0x00000007;EditText 光标移动与选择主要介绍 setSelection 方法。setSelection有setSelection(int start, int stop) 选择范围setSelection(int index) 把光标移动到指定位置例假设有EditText变量名为mEt1。把光标移动到最前mEt1.setSelection(0);mEt1.setSelection(mEt1.getText().length());mEt1.setSelection(mEt1.getSelectionEnd() 1);mEt1.setSelection(mEt1.getSelectionEnd() - 1);要注意的是如果传入的index超出了text的范围会报java.lang.IndexOutOfBoundsException因此在实际工程中需要判断传入的位置是否在EditText已有内容的长度范围内。把光标移动到最后光标右移一位光标左移一位全选当前输入的textmEt1.setSelection(0, mEt1.getText().length());监听输入内容代码中动态限制输入长度使用TextWatchermQueryEt.addTextChangedListener(newTextWatcher(){OverridepublicvoidbeforeTextChanged(CharSequence s,int start,int count,int after){}OverridepublicvoidonTextChanged(CharSequence s,int start,int before,int count){}OverridepublicvoidafterTextChanged(Editable s){// 如果EditText中的数据不为空且长度大于指定的最大长度if(!TextUtils.isEmpty(s)s.length()15){// 删除指定长度之后的数据s.delete(15,s.length()-1);}}});最后分享一份【腾讯技术团队出品】Android零基础入门到精通Android Studio安装教程全套安卓基础教程Android编程入门教程Java语言基础从入门到熟悉Kotlin语言基础从入门到熟悉Android 技术栈从入门到熟悉Android Jetpack 全家桶全面学习对于新手来说可能安装Android Studio存在一定困难你可以看着以下视频一步步的跟着学习安装运行Android Studio 安装教程有了Java阶段的学习这一阶段建议以视频学习为主辅以图书查漏补缺。如果以图书为主可以根据图书讲解敲代码辅以教学视频查漏补缺。遇到问题可以去百度入门的问题一般会有很多人遇到并且给出比较好的解答。需要掌握基本知识点比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画、网络通信等常见技术。全套零基础教程已经为你们准备好了需要的可以添加下方二维码免费领取全套安卓基础教程
返回列表