android关于EditText与其光标

翻译 2015年07月07日 15:23:40
(该文属整合性文章)

android EditText插入字符串到光标所在位置

       在安卓中处理文本编辑的时候,我们一般都是用EditText控件,除了基本的输入文字功能之外,我们很可能还需要一些更灵活的功能,比如在光标所在位置插入一张图片。但是EditText本身只有追加函数append(),并没有insert方法,难道要我们自己写方法实现插入功能吗,经过研究之后发现,EditText有已经实现好了的插入方法,不过在其附属的另外一个对象Editable中。通过getEditableText()方法可以获得该对象。下面的一段代码演示了如何在EditText的光标之处插入文字:
EditText mEditText = (EditText)findViewById(R.id.input);//EditText对象
int index = mEditText.getSelectionStart();//获取光标所在位置
String text="I want to input str";
Editable edit = mEditText.getEditableText();//获取EditText的文字
if (index < 0 || index >= edit.length() ){
      edit.append(text);
}else{
      edit.insert(index,text);//光标所在位置插入文字
 }

       你可能会说,在光标之处插入文字,那还不简单,用户直接通过输入法打出来的文字不都是在光标之处吗,你上面讲的东西有什么实际意义?的确是这样,但是有些情况下,我们希望光标处的文字或者其他东西并不是来自于用户输入,可能是来自于其他app或者activity的返回结果,这个结果应该自动插入到光标处,所以上面的讨论是有实际意义的。
       这里我可以解释一下原作者的意思,假如我们插入的是表情(至于如何向EditText插入表情,可以上网百度),对于使用这段话就很有必要了,不然可能即便光标不再文本末,插入表情也会插入到末尾的。

android java代码设置EditText输入类型

setInputType(android.text.InputType.*);
//可以根据自己的需要设置相应的类型。

怎样把光标放在EditText中文本的末尾处?
Editable etext = mSubjectTextEditor.getText();
Selection.setSelection(etext, etext.length());





相关文章推荐

android关于EditText取消默认焦点及触摸其它地方去掉光标隐藏键盘问题

android:focusableInTouchMode="true"

android EditText获取光标位置并插入字符删除字符

1.获取光标位置   [java]  int index = editText.getSelectionStart();   2.在光标处插入字符   [java]  int...

不仅仅是修改(Android EditText光标)

前言:放假三天,玩了两天了,前几天写过一篇博客 Android CardView全解析(二)好吧,本来就是想看看CardView的实现机制,然后看到5.0中实现CardView的方法,于是又感觉发现了...
  • vv_bug
  • vv_bug
  • 2017年04月04日 12:50
  • 429

android EditText 光标位置

设置android:gravity="" 效果图1:   布局文件xml内容如下:   [html] view plaincopy ...
  • fjseryi
  • fjseryi
  • 2015年11月27日 09:21
  • 706

android EditText控制光标的位置

edittext 控制光标

Android EditText 反射实现有光标闪,但点击不弹出键盘

随着Android发展,版本更新,目前通过方法setInputType(InputType.TYPE_NULL);
  • hhfhhy
  • hhfhhy
  • 2014年05月13日 11:30
  • 787

Android 设置EditText光标显示与隐藏,颜色及粗细

Android 设置EditText光标显示与隐藏,颜色及粗细 (一)Android 设置EditText光标颜色及粗细  在android的输入框里,如果要修改光标的颜色及粗细步骤如...
  • aicpzl
  • aicpzl
  • 2016年07月16日 15:04
  • 1059

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

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

android系统中,点击EditText时,隐藏系统软键盘,显示光标

因为项目中要用自定义的随机键盘,所以必须得屏蔽系统软键盘,但是在4.0的测试系统来看,使用editText.setInputType(InputType.TYPE_NULL)方法固然能隐藏键盘,但是光...

android listview 每一项都是edittext 导致的坑爹问题 内容的保存和焦点,光标位置的设置

activity布局:布局很简单,只有一个listview
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android关于EditText与其光标
举报原因:
原因补充:

(最多只允许输入30个字)