有时候需要让光标显示在EditText的指定位置或者选中某些文本。同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点。
1. 设置光标到指定位置

  1. EditText et = (EditText) findViewById(R.id.etTest);
  2. et.setSelection(2);


PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏幕上。
2. 隐藏光标

  1. EditText et = (EditText) findViewById(R.id.etTest);
  2. //设置光标不显示,但不能设置光标颜色
  3. et.setCursorVisible(false);

3. 获得焦点时全选文本

  1. EditText et = (EditText) findViewById(R.id.etTest);
  2. et.setSelectAllOnFocus(true);


PS:此方法可用来在用户点击EditText时,选中默认内容。
4. 获取和失去焦点

  1. EditText et = (EditText) findViewById(R.id.etTest);
  2. et.requestFocus(); //请求获取焦点
  3. et.clearFocus(); //清除焦点

5. 综合运用代码

  1. EditText et = (EditText) findViewById(R.id.etTest);
  2. int index = et.getSelectionStart();//获取光标所在位置
  3. String text="#请在这里输入话题#";
  4. Editable edit = et.getEditableText();//获取EditText的文字
  5. if (index < 0 || index >= edit.length() ){
  6. edit.append(text);
  7. }else{
  8. edit.insert(index,text);//光标所在位置插入文字
  9. }
  10. et.setSelection(index + 1, index + text.length() - 1);

PS:在光标处插入文本,并选中##里面的文本

整理改编自: http://orgcent.com/android-edittext-cursor-position-focus/

[Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点的更多相关文章

  1. EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)

    转:http://blog.csdn.net/dajian790626/article/details/8464722 有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便 ...

  2. C# 设置鼠标光标位置

    C# 设置鼠标光标位置 using System.Drawing; using System.Runtime.InteropServices; namespace ZB.QueueSys.Common ...

  3. Android: EditText设置属性和设置输入规则

    1.EditText输入限制规则 在xml:EditText 设置属性 android:digits="ABCDE123&*" ABCDE123&*是你的限制规则 ...

  4. Android中EditText设置输入条件

    一.应用场景 之前做商城应用时,会有对用户资料的设置情况进行限制,如下: (1)用户邮箱,应当只允许输入英文字母,数字和@.两个符号, (2)用户手机,应当只能输入数字,禁止输入其他字符. (3)用户 ...

  5. (转)Android如何编程设置APP安装位置(外部存储或内部存储)?

    Beginning with API Level 8, you can allow your application to be installed on the external storage ( ...

  6. android的edittext设置输入限制,只能输入数字

    EditText的属性里面已经封装好了相关的设置,上一篇文章里面也提到了,不熟悉的可以去查看上一篇EditText属性大全,这里着重讲输入限制的属性: android:digits="123 ...

  7. jquery设置bootstrap-table的当前选中页码的获取与设置

    一.获取当前table分页的页码 有两种方式可以获得当前选中的页码: 1.通过table的onPageChange方法 $('#agentTable').bootstrapTable({ data: ...

  8. WPF之RichTextBox丢失光标仍然选中文本

    描述:开发中完成了一个类似于Word的悬浮工具栏功能,选中文本之后可以自动弹出一个工具栏.可以修改字体.字体大小等功能,问题来了,我发现当去进行操作的时候原本选中的RichTextBox的内容的颜色会 ...

  9. [Android教程]EditText怎样限制用户的输入?数字/字母/邮箱

    有输入必有验证.为了防止用户随便输入确保提交数据的合法性,程序不得不在文本输入框(EditText)中增加限制或验证. 关于输入类型有数字.字母.邮箱.电话等形式,这些具体得根据业务来.那么Andro ...

随机推荐

  1. IE6 IE7: div中table宽度100%导致的宽度问题

    问题现象:定义了DOCTYPE的页面 当表格的内容比div的高度还要高时,div会出现滚动条,同时在IE6和IE7下会出现问题: IE6:此时table的100%宽度还是没有滚动条那是的宽度,出现滚动 ...

  2. jquery的show/hide性能测试

    这篇文章是jQuery各种 show/hide方式的性能测试.作者之所以测试这个源于Robert Duffy在SanFrancisco举行的jQuery大会上的一句话:“.hide()和.show() ...

  3. MYSQL注入天书之stacked injection

    第三部分/page-3 Stacked injection Background-8 stacked injection Stacked injections:堆叠注入.从名词的含义就可以看到应该是一 ...

  4. 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?

    本文作者 Jacek Laskowski 拥有近20年的应用程序开发经验,现 CodiLime 的软件开发团队 Leader,曾从 IBM 取得多种资格认证.在这篇博文中,Jacek 分享了 Wars ...

  5. 【linux】打印字符串中指定行

    只打印第10行 关键在于当行数小于10时不输出. 用 head tail的关键问题是当行数小于10的时候用 head -n 10 只会打出前面的行,再用tail就错了. 所以要知道源文件一共有多少行. ...

  6. VulToEs

    VulntoES https://github.com/ChrisRimondi/VulntoES

  7. 重载和覆盖的区别?(overload vs override)

    override与overload的区别? override 表示重写,overload 表示重载.override是子类和父类之间的关系,是垂直关系:overload是同一个类中方法之间的关系,是水 ...

  8. 2014多校第七场1003 || HDU 4937 Lucky Number

    题目链接 题意 : 给定一个十进制n,让你转化成某个进制的数,让这个数只包含3 4 5 6这些数字,这个进制就成为n的幸运数字,输出有多少幸运数字,例如19,5进制表示是34,所以5是19的一个幸运数 ...

  9. gitHub入门指导

    Github可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性.为一个项目贡 ...

  10. 理解Node.js事件驱动编程

    Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现). 但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点 ...