사용자 지정 키보드를 사용하고 있습니다.현재 edittext의 maxlength에 도달 한 후 다음 edittext로 포커스를 설정하는 방법은 무엇입니까?
나는 4 개의 EditText
과 1 개의 Button
을 가지고있다.
조건 : -
이 값이editText
에 입력 될 때마다
EditText
의 최대 길이는 1입니다
, 초점은 다음 EditText
로 이동해야합니다. 나는 TextWatcher
을 사용하여 이것을 구현하고있다.
문제는 EditText에 값을 입력 할 때 초점이나 커서가 다음 EditText로 이동하는 것입니다. 그러나 사용자가 입력 된 값을 편집하려는 경우에는 손으로 초점을 맞출 수 없습니다. EditText
최대 값은 이미 있습니다. 그리고 분명히 커서는 다음 EditText로 이동합니다.
코드 : -
public class Listener implements TextWatcher {
EditText editText;
public Listener(EditText et)
{
editText = et;
}
@Override
public void afterTextChanged(Editable s)
{
int id = editText.getId();
String str = s.toString();
if(!str.isEmpty())
{
switch (id) {
case R.id.edit_txt1:
et2.requestFocus();
break;
case R.id.edit_txt3:
et3.requestFocus();
break;
case R.id.edit_txt3:
et4.requestFocus();
break;
case R.id.edit_pin4:
createPin4.clearFocus();
EditText txt =(EditText)findViewById(R.id.foc);
txt.requestFocus();
break;
}
}
else
{
editText.setFocusable(true);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}