转自:http://blog.csdn.net/wirelessqa/article/details/8567702

话不多说,直接上码:

activity_main.xml

  1. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="fill_parent"
  4. android:layout_height="wrap_content" >
  5. <RelativeLayout
  6. android:layout_width="fill_parent"
  7. android:layout_height="wrap_content" >
  8. <EditText
  9. android:id="@+id/edit"
  10. android:layout_width="fill_parent"
  11. android:layout_height="40dp"
  12. android:hint="请在这里输入文本..."
  13. android:inputType="text" />
  14. <Button
  15. android:id="@+id/getAll"
  16. android:layout_width="fill_parent"
  17. android:layout_height="40dp"
  18. android:layout_below="@+id/edit"
  19. android:text="获取输入框中的值" />
  20. <Button
  21. android:id="@+id/getSelect"
  22. android:layout_width="fill_parent"
  23. android:layout_height="40dp"
  24. android:layout_below="@+id/getAll"
  25. android:text="获取被选中的文本" />
  26. <Button
  27. android:id="@+id/selectAll"
  28. android:layout_width="fill_parent"
  29. android:layout_height="40dp"
  30. android:layout_below="@+id/getSelect"
  31. android:text="全选" />
  32. <Button
  33. android:id="@+id/selectFrom"
  34. android:layout_width="wrap_content"
  35. android:layout_height="40dp"
  36. android:layout_below="@+id/selectAll"
  37. android:text="从第几个字符开始选?" />
  38. <EditText
  39. android:id="@+id/fromNumber"
  40. android:layout_width="fill_parent"
  41. android:layout_height="40dp"
  42. android:layout_below="@+id/selectAll"
  43. android:layout_toRightOf="@+id/selectFrom"
  44. android:inputType="date"
  45. android:hint="在这里输入.." />
  46. <TextView
  47. android:id="@+id/tip"
  48. android:layout_width="fill_parent"
  49. android:layout_height="wrap_content"
  50. android:layout_below="@+id/selectFrom"
  51. android:text="提示:焦点必须放在输入框才能够选中"
  52. />
  53. </RelativeLayout>
  54. </ScrollView>

MainActivity.java

  1. package com.wirelessqa.edittext;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.text.Editable;
  5. import android.text.Selection;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. import android.widget.Toast;
  11. /**
  12. * EditText选取操作
  13. * From:http://www.csdn.net/blog/wirelessqa
  14. * @author bixiaopeng 2013-2-3 下午9:41:57
  15. */
  16. public class MainActivity extends Activity {
  17. private EditText edit            = null;
  18. private EditText edit_selectFrom = null;
  19. private Button   btn_getEdit     = null;
  20. private Button   btn_getSelect   = null;
  21. private Button   btn_selectAll   = null;
  22. private Button   btn_selectFrom  = null;
  23. /* (non-Javadoc)
  24. * @see android.app.Activity#onCreate(android.os.Bundle)
  25. */
  26. @Override
  27. protected void onCreate(Bundle savedInstanceState) {
  28. // TODO Auto-generated method stub
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. edit = (EditText) findViewById(R.id.edit);
  32. edit_selectFrom = (EditText) findViewById(R.id.fromNumber);
  33. btn_getEdit = (Button) findViewById(R.id.getAll);
  34. btn_getSelect = (Button) findViewById(R.id.getSelect);
  35. btn_selectAll = (Button) findViewById(R.id.selectAll);
  36. btn_selectFrom = (Button) findViewById(R.id.selectFrom);
  37. edit.setText("老毕的博客:http://www.csdn.net/blog/wirelessqa");
  38. //监听获取输入框中的所有文本
  39. btn_getEdit.setOnClickListener(new OnClickListener() {
  40. @Override
  41. public void onClick(View v) {
  42. String editText = edit.getText().toString();
  43. Toast.makeText(MainActivity.this, editText, Toast.LENGTH_LONG).show();
  44. }
  45. });
  46. //监听获取选中的文本
  47. btn_getSelect.setOnClickListener(new OnClickListener() {
  48. @Override
  49. public void onClick(View v) {
  50. int startSelect = edit.getSelectionStart();
  51. int endSelect = edit.getSelectionEnd();
  52. String selectText = edit.getText().subSequence(startSelect, endSelect).toString();
  53. Toast.makeText(MainActivity.this, selectText, Toast.LENGTH_LONG).show();
  54. }
  55. });
  56. //全选
  57. btn_selectAll.setOnClickListener(new OnClickListener() {
  58. @Override
  59. public void onClick(View v) {
  60. setEditFocus(edit);
  61. edit.selectAll();
  62. }
  63. });
  64. //从第几个字符开始选择
  65. btn_selectFrom.setOnClickListener(new OnClickListener() {
  66. @Override
  67. public void onClick(View v) {
  68. //从输入框中获取值
  69. int fromNumber = 0;
  70. try {
  71. fromNumber = Integer.valueOf(edit_selectFrom.getText().toString());
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. fromNumber = 0;
  75. Toast.makeText(MainActivity.this, "请输入大于0的数字", Toast.LENGTH_SHORT).show();
  76. }
  77. int length = edit.getText().length()-1;//输入框中文本的长度
  78. if(fromNumber !=0 && fromNumber<length){
  79. Editable editable = edit.getText();
  80. setEditFocus(edit);
  81. Selection.setSelection(editable,fromNumber,editable.length());
  82. }else{
  83. Toast.makeText(MainActivity.this, "输入的数字要小于"+length, Toast.LENGTH_SHORT).show();
  84. }
  85. }
  86. });
  87. }
  88. /**
  89. * 将焦点放在输入框中
  90. * 如果想要选中输入框中的文本必须要将焦点放在输入框中
  91. * 如果想要焦点在输入框中必须设置下面三个方法
  92. * @param editText
  93. */
  94. private void setEditFocus(EditText editText){
  95. editText.setFocusable(true);
  96. editText.setFocusableInTouchMode(true);
  97. editText.requestFocus();
  98. }
  99. }

本文链接:http://blog.csdn.net/wirelessqa/article/details/8567702

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:http://blog.csdn.net/wirelessqa,谢谢!^^

(获取选中的光标起始位置)EditText常用属性【三】:EditText选取操作的更多相关文章

  1. Android EditText常用属性

    一.EditText介绍 ①EditText是一个输入框,在Android开发中是常用的控件.也是获取用户数据的一种方式. ②EditText是TextView的子类,它继承了TextView的所有属 ...

  2. Android:EditText 常用属性

    属性 作用 android:hint="输入邮箱/用户名" 提示信息 android:inputType="textPassword" 设置文本的类型 andr ...

  3. JS获取和设置光标的位置

    <html> <head> <script language="javascript"> function getCursortPosition ...

  4. 获取contenteditable区域光标所在位置信息

    在我们使用contenteditable编辑时,有时需要光标位置的信息. <div contenteditable="true" style="min-height ...

  5. iOS开发之-- textview 光标起始位置偏移

    使用textview的时候,会发生光标偏移的情况,其实是因为iOS7里导航栏,状态栏等有个边缘延伸的效果在. 把边缘延伸关掉就好了.代码如下 //取消iOS7的边缘延伸效果(例如导航栏,状态栏等等) ...

  6. Delphi 常用属性说明(超长)

    Delphi组件的常用事件Onclick——当单击时触发这个事件中的代码Onchange——当改变该组件内容时触发其中的代码Oncreate——当创建时触发这个事件中的代码Onclose——当关闭的时 ...

  7. DIV常用属性大全

    目录 一.属性列表 二.常用属性 三.一些特殊效果 四.定位和控制 一.属性列表 color : #999999 文字颜色 font-family : 宋体 文字字型 font-size : 10pt ...

  8. jquery 获取选中的文字.当前光标所在的位置等jquery-fieldselection 插件

    写词典在线编辑器用到的一个功能 能获取选中的文字.当前的光标的位置 等位置,而且支持多个文本框一起操作 非常方便 git地址:https://github.com/localhost/jquery-f ...

  9. javascript获取以及设置光标位置

    一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...

随机推荐

  1. 设置Eclipse/MyEclipse中编辑界面点击任何文件后Package Explorer导航自动定位该文件

    原文:http://www.myexception.cn/eclipse/425836.html 设置步骤: 导航Package Explorer的右上角有一个黄色双向箭头图标,鼠标移动到上面提示“L ...

  2. SpringBoot学习:读取yml和properties文件的内容

    一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: <!-- 支持 @ConfigurationProperties 注解 --> <!-- https://m ...

  3. JDK Windows安装

    进入至JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点击下载后,会进入下载列表 点击下载后,就等 ...

  4. 架构设计之NodeJS操作消息队列RabbitMQ

    一. 什么是消息队列? 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 消息队列(Message Queue)是一种应用间的通信 ...

  5. spring.net 在demo中的分析

    1.认识spring.net Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及AS ...

  6. thinkphp Upload上传文件在客户端生成的临时文件$_FILES['file']['tmp_name']

    1.关于thinkphp 的Upload的$_FILES['file']['tmp_name'] 在使用thinkphp上传图片的时候,在上传的$_FILES数组中,有一个$_FILES['file' ...

  7. HRBUST 1213 单词接龙

    暴力搜索. 按照能配对的关系建立有向边,然后暴力搜索. #include<cstdio> #include<cstring> #include<cmath> #in ...

  8. 35、Flask实战第35天:权限设计

    二进制及其相关运算 认识二进制 0,1,2,3,4,5,6,7,8,9,10:逢10进1 0,1:逢2进1 二进制转十进制 十进制 二进制 0 0 1 1 2 10 3 11 4 100 255 11 ...

  9. Python使用boto3操作AWS S3中踩过的坑

    最近在AWS上开发部署应用. 看了这篇关于AWS中国区填坑的文章,结合自己使用AWS的经历,补充两个我自己填的坑. http://www.jianshu.com/p/0d0fd39a40c9?utm_ ...

  10. Spring的远程调用

    Spring远程支持是由普通(Spring)POJO实现的,这使得开发具有远程访问功能的服务变得相当容易 四种远程调用技术: ◆ 远程方法调用(RMI) ◆ Caucho的Hessian和Burlap ...