我有三个编辑框,它们只能在每个框上输入一个数字。当我输入第一个框的值时,焦点应该从第一个框移动到第二个。在输入值到第二个框之后,它的焦点应该是像我需要做的那样自动移到第二到第三位。有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
您可以使用requestFocus()API将焦点从代码中移开,
使用textWatcher继续监听文本,一旦达到指定的限制,调用EditTextreference.requestFocus()来移动焦点。
答案 1 :(得分:1)
当EditText长度大于1时,此代码将焦点从一个EditText移动到另一个。
EditText et1,et2;
et1 = (EditText)findViewById(R.id.id1);
et2 = (EditText)findViewById(R.id.id2);
et1.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s)
{
// Abstract Method of TextWatcher Interface.
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after)
{
// Abstract Method of TextWatcher Interface.
}
public void onTextChanged(CharSequence s,
int start, int before, int count)
{
Integer textlength = et1.getText().length();
if(textlength>=1){ //If text length greater than 1 move to next EditText
et2.requestFocus();
}
}
});