(获取选中的光标起始位置)EditText常用属性【三】:EditText选取操作
转自:http://blog.csdn.net/wirelessqa/article/details/8567702

话不多说,直接上码:
activity_main.xml
- <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <RelativeLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <EditText
- android:id="@+id/edit"
- android:layout_width="fill_parent"
- android:layout_height="40dp"
- android:hint="请在这里输入文本..."
- android:inputType="text" />
- <Button
- android:id="@+id/getAll"
- android:layout_width="fill_parent"
- android:layout_height="40dp"
- android:layout_below="@+id/edit"
- android:text="获取输入框中的值" />
- <Button
- android:id="@+id/getSelect"
- android:layout_width="fill_parent"
- android:layout_height="40dp"
- android:layout_below="@+id/getAll"
- android:text="获取被选中的文本" />
- <Button
- android:id="@+id/selectAll"
- android:layout_width="fill_parent"
- android:layout_height="40dp"
- android:layout_below="@+id/getSelect"
- android:text="全选" />
- <Button
- android:id="@+id/selectFrom"
- android:layout_width="wrap_content"
- android:layout_height="40dp"
- android:layout_below="@+id/selectAll"
- android:text="从第几个字符开始选?" />
- <EditText
- android:id="@+id/fromNumber"
- android:layout_width="fill_parent"
- android:layout_height="40dp"
- android:layout_below="@+id/selectAll"
- android:layout_toRightOf="@+id/selectFrom"
- android:inputType="date"
- android:hint="在这里输入.." />
- <TextView
- android:id="@+id/tip"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/selectFrom"
- android:text="提示:焦点必须放在输入框才能够选中"
- />
- </RelativeLayout>
- </ScrollView>
MainActivity.java
- package com.wirelessqa.edittext;
- import android.app.Activity;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.Selection;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- /**
- * EditText选取操作
- * From:http://www.csdn.net/blog/wirelessqa
- * @author bixiaopeng 2013-2-3 下午9:41:57
- */
- public class MainActivity extends Activity {
- private EditText edit = null;
- private EditText edit_selectFrom = null;
- private Button btn_getEdit = null;
- private Button btn_getSelect = null;
- private Button btn_selectAll = null;
- private Button btn_selectFrom = null;
- /* (non-Javadoc)
- * @see android.app.Activity#onCreate(android.os.Bundle)
- */
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- edit = (EditText) findViewById(R.id.edit);
- edit_selectFrom = (EditText) findViewById(R.id.fromNumber);
- btn_getEdit = (Button) findViewById(R.id.getAll);
- btn_getSelect = (Button) findViewById(R.id.getSelect);
- btn_selectAll = (Button) findViewById(R.id.selectAll);
- btn_selectFrom = (Button) findViewById(R.id.selectFrom);
- edit.setText("老毕的博客:http://www.csdn.net/blog/wirelessqa");
- //监听获取输入框中的所有文本
- btn_getEdit.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- String editText = edit.getText().toString();
- Toast.makeText(MainActivity.this, editText, Toast.LENGTH_LONG).show();
- }
- });
- //监听获取选中的文本
- btn_getSelect.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- int startSelect = edit.getSelectionStart();
- int endSelect = edit.getSelectionEnd();
- String selectText = edit.getText().subSequence(startSelect, endSelect).toString();
- Toast.makeText(MainActivity.this, selectText, Toast.LENGTH_LONG).show();
- }
- });
- //全选
- btn_selectAll.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- setEditFocus(edit);
- edit.selectAll();
- }
- });
- //从第几个字符开始选择
- btn_selectFrom.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- //从输入框中获取值
- int fromNumber = 0;
- try {
- fromNumber = Integer.valueOf(edit_selectFrom.getText().toString());
- } catch (Exception e) {
- e.printStackTrace();
- fromNumber = 0;
- Toast.makeText(MainActivity.this, "请输入大于0的数字", Toast.LENGTH_SHORT).show();
- }
- int length = edit.getText().length()-1;//输入框中文本的长度
- if(fromNumber !=0 && fromNumber<length){
- Editable editable = edit.getText();
- setEditFocus(edit);
- Selection.setSelection(editable,fromNumber,editable.length());
- }else{
- Toast.makeText(MainActivity.this, "输入的数字要小于"+length, Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- /**
- * 将焦点放在输入框中
- * 如果想要选中输入框中的文本必须要将焦点放在输入框中
- * 如果想要焦点在输入框中必须设置下面三个方法
- * @param editText
- */
- private void setEditFocus(EditText editText){
- editText.setFocusable(true);
- editText.setFocusableInTouchMode(true);
- editText.requestFocus();
- }
- }
本文链接:http://blog.csdn.net/wirelessqa/article/details/8567702
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:http://blog.csdn.net/wirelessqa,谢谢!^^
(获取选中的光标起始位置)EditText常用属性【三】:EditText选取操作的更多相关文章
- Android EditText常用属性
一.EditText介绍 ①EditText是一个输入框,在Android开发中是常用的控件.也是获取用户数据的一种方式. ②EditText是TextView的子类,它继承了TextView的所有属 ...
- Android:EditText 常用属性
属性 作用 android:hint="输入邮箱/用户名" 提示信息 android:inputType="textPassword" 设置文本的类型 andr ...
- JS获取和设置光标的位置
<html> <head> <script language="javascript"> function getCursortPosition ...
- 获取contenteditable区域光标所在位置信息
在我们使用contenteditable编辑时,有时需要光标位置的信息. <div contenteditable="true" style="min-height ...
- iOS开发之-- textview 光标起始位置偏移
使用textview的时候,会发生光标偏移的情况,其实是因为iOS7里导航栏,状态栏等有个边缘延伸的效果在. 把边缘延伸关掉就好了.代码如下 //取消iOS7的边缘延伸效果(例如导航栏,状态栏等等) ...
- Delphi 常用属性说明(超长)
Delphi组件的常用事件Onclick——当单击时触发这个事件中的代码Onchange——当改变该组件内容时触发其中的代码Oncreate——当创建时触发这个事件中的代码Onclose——当关闭的时 ...
- DIV常用属性大全
目录 一.属性列表 二.常用属性 三.一些特殊效果 四.定位和控制 一.属性列表 color : #999999 文字颜色 font-family : 宋体 文字字型 font-size : 10pt ...
- jquery 获取选中的文字.当前光标所在的位置等jquery-fieldselection 插件
写词典在线编辑器用到的一个功能 能获取选中的文字.当前的光标的位置 等位置,而且支持多个文本框一起操作 非常方便 git地址:https://github.com/localhost/jquery-f ...
- javascript获取以及设置光标位置
一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selecti ...
随机推荐
- java 和 JVM
C++和Java的区别 指针:java中不存在指针的概念,编程者无法直接通过指针来直接访问内存,有利于维护java程序的安全 多重继承:C++支持多重继承,java不支持多重继承,但是允许一个类继承多 ...
- python 基础习题
1.8<<2等于? 8 ---> 1000 32 ---> 100000 -----------结果--- 32 2.通过内置函数计算5除以2的余数 print(dir()) ...
- Spring boot 集成hessian - LocalDateTime序列化和反序列化
- 反序列化 import com.caucho.hessian.HessianException; import com.caucho.hessian.io.AbstractDeserializer ...
- hdu 2955(概率转化,01背包)
Hot~~招聘——巴卡斯(杭州),壹晨仟阳(杭州),英雄互娱(杭州) (包括2016级新生)除了校赛,还有什么途径可以申请加入ACM校队? Robberies Time Limit: 2000/100 ...
- Linux rsync数据定时增量备份
一.安装rsync服务端 1.查看是否安装rsync ps -ef | grep rsync 系统一般默认已安装,安装方法: yum -y install rsync 2.添加配置文件 rsync没有 ...
- http.pieplining
默认情况下http协议中每个传输层连接只能承载一个http请求和响应,然后结束. HTTP是一个简单的协议.客户进程建立一条同服务器进程的 T C P连接,然后发出请求并读取服务器进程的响应.服务器进 ...
- 北邮校赛 H. Black-white Tree (猜的)
H. Black-white Tree 2017- BUPT Collegiate Programming Contest - sync 时间限制 1000 ms 内存限制 65536 KB 题目描述 ...
- Web移动应用调试工具——Weinre
如今人们也越来越习惯在手机上浏览网页,而在手机上这些针对桌面浏览器设计的网页经常惨不忍睹.Web应用开发者需要针对手机进行界面的重新设计,但是手机上并没有称心如意的调试工具(如Firebu ...
- 【BZOJ 3994】3994: [SDOI2015]约数个数和(莫比乌斯反演)
3994: [SDOI2015]约数个数和 Description 设d(x)为x的约数个数,给定N.M,求 Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接 ...
- java.lang.NegativeArraySizeException
两台android设备发送图片. 发送端: Socket socket = null; try { socket = new Socket(ip, 8888); byte[] bytes = Scre ...