android怎样实现EditText和EditText自动跳转?

有多个EditText,然后限制每个EditText的输入字数,如为2个,当这个EditText里的字数大于2时,光标自动跳转到下一个EditText,这个代码怎么实现啊... 有多个EditText,然后限制每个EditText的输入字数,如为2个,当这个EditText里的字数大于2时,光标自动跳转到下一个EditText,这个代码怎么实现啊?求大神指导,谢谢了! 展开
 我来答
向往退休的年轻人g26a9
2013-03-27 · TA获得超过159个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:86.5万
展开全部
private ArrayList<EditText> mEditList = new ArrayList<EditText>();

定义一个动态数组存储EditText 可以在onCreate函数里把你界面上的若干EditText存储进去
之后为动态数组里面的每个EditText设置监听字数变化函数
for (int i = 0; i < mEditList.size(); i++) {
mEditList.get(i).addTextChangedListener(mTextWatcher);
}
这里的mTextWatcher就是输入文字变化监听器了,实现如下:
TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (s.length() == 2) { //限定2个字符
int done_input_id = getCurrentFocus().getId();
for (int i = 0; i < mEditList.size(); i++) {
if (mEditList.get(i).getId() == done_input_id) {
int next_index = i + 1;
try {
EditText next_edit = mEditList.get(next_index);
next_edit.requestFocus();
} catch (Exception e) {
}
}
}
}
}
};
追问
这样只是把光标跳转过去了,不能输入字符,输入的字符还是显示在前一个EditText里面,这个怎么解决啊?
yazhbd
2013-03-27 · TA获得超过126个赞
知道答主
回答量:83
采纳率:50%
帮助的人:31.8万
展开全部
这个很简单啊,

et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i(TAG,"s:" + s + " s.length:" + s.length());
if(s.length() > 2)
{
et2.requestFocus();
}
}
追问
这样只是把光标跳转过去了,不能输入字符,输入的字符还是显示在前一个EditText里面,这个怎么解决啊?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式