android edittext 光标 尾,android如何将EditText光标设置为其文本的末尾[复制]

用户必须输入他的手机号码,手机号码必须是10个号码,我用TextWatcher这样做,就像这样

et_mobile.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

// TODO Auto-generated method stub

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

// TODO Auto-generated method stub

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

if (et_mobile.getText().toString().length() > 10) {

et_mobile.setText(et_mobile.getText().toString()

.subSequence(0, 10));

tv_mobileError.setText("Just 10 Number");

}else{

tv_mobileError.setText("*");

}

}

});

但问题是当用户输入第11个数字时,edittext的光标从文本的开头开始,我希望它仍然在最后,怎么样?

答案

你有两个选择,两个都应该工作:

一个)

editText.setText("Your text");

editText.setSelection(editText.getText().length());

b)

editText.setText("");

editText.append("Your text");

另一答案

/**

* Set pointer to end of text in edittext when user clicks Next on KeyBoard.

*/

View.OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {

@Override

public void onFocusChange(View view, boolean b) {

if (b) {

((EditText) view).setSelection(((EditText) view).getText().length());

}

}

};

mEditFirstName.setOnFocusChangeListener(onFocusChangeListener);

mEditLastName.setOnFocusChangeListener(onFocusChangeListener);

它对我有用!

另一答案

虽然jenzz anwser适用于最简单的情况。如果在编辑文本之前移动光标则不会,因为只要键入第二个字母,它就会移动到EditText的末尾。

喜欢使用此解决方案:

@Override

public void onTextChanged(CharSequence s, int start, int before, int count)

{

...

int position = et_mobile.getSelectionStart();

et_mobile.setText(f(s));

et_mobile.setSelection(position);

...

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值