Android 修改EditText光标的颜色、位置、获取焦点、失去焦点

下面来说一下:Android如何修改EditText光标的颜色、位置、获取焦点、失去焦点。


1、控制光标颜色

EditText有一个属性:textCursorDrawable,这个属性是用来控制光标颜色的。

例如:

android:textCursorDrawable="@null"

上面”@null”作用是让光标颜色和text color一样(默认的)。


如果想要修改一下光标的颜色和粗细:

先在资源文件drawable下,新建一个光标控制edit_cursor.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <size android:width="1dp" />

    <solid android:color="#008000" />

</shape>
然后在EditText中添加属性:

android:textCursorDrawable="@drawable/edit_cursor"

ok,然后就大功告成了!


2、修改光标位置

EditText 控件默认获取焦点的时候,插入光标是在第一个位置的,如果EditText中设置了文本,这个时候光标是在文本的最前面,而不是文本的最后。 

为了方便用户使用,需要把光标移动到文本最后,方便编辑。

此时用代码修改如下:

EditText et = (EditText) findViewById(R.id.edit);
String text = "text";
et.setText(text);
et.setSelection(text.length());

注意:在调用setSelection方法时,如果里面的参数为0(即text.length长度为0时)会报错,请在使用前确认文本长度大于零。


3、EditText获得焦点

如果界面中含有多个EditText,在首次进入界面时,自动弹出软键盘,却不知道光标在何处。汗(⊙﹏⊙)

所以,最好呢在你想要编辑的第一个EditText中添加如下代码,用来获取焦点并且弹出软键盘:

et.requestFocus();
et.setFocusable(true);
et.setFocusableInTouchMode(true);
InputMethodManager imm = (InputMethodManager) this
		.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(et, 0);
ok,此刻进入界面光标在你想要的位置,并且弹出了键盘,直接输入就可以编辑了呦。

4、EditText失去焦点

有些时候我们是不想让用户编辑我们的EditText的,此刻应该怎么办呢?一句代码解决:

et.setEnabled(false);
即让我们的edittext不能用,哈哈,ok,不能编辑啦。






  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值