如何在用户验证 EditText 时更改焦点
How to change the focus when user validate the EditText
在我的例子中,用户必须给出小时和分钟,但我找不到如何将焦点放在分钟上,因为我输入了一个字符的小时。时间可以是一两个字符,所以即使我只给出一个字符并使用键盘进行验证,我也想这样做。
这是我的代码:
ed_nbHeure.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(ed_nbHeure.length()>1){
ed_nbMin.requestFocus();
}
}
});
我想知道如何用键盘调用验证动作改变焦点
谢谢
试试这个:
ed_nbHeure.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length()==1){
ed_nbMin.requestFocus();
}
}
});
在afterTextChanged
中添加此条件
if(s.length()==1)
{
ed_nbMin.requestFocus();
}
在我的例子中,我只需要像这样使用 .setOnEditorActionListener() :
ed_nbHeure.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId== EditorInfo.IME_ACTION_DONE){
ed_nbMin.requestFocus();
}
return false;
}
});
感谢您的帮助
在我的例子中,用户必须给出小时和分钟,但我找不到如何将焦点放在分钟上,因为我输入了一个字符的小时。时间可以是一两个字符,所以即使我只给出一个字符并使用键盘进行验证,我也想这样做。 这是我的代码:
ed_nbHeure.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(ed_nbHeure.length()>1){
ed_nbMin.requestFocus();
}
}
});
我想知道如何用键盘调用验证动作改变焦点
谢谢
试试这个:
ed_nbHeure.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s.length()==1){
ed_nbMin.requestFocus();
}
}
});
在afterTextChanged
中添加此条件
if(s.length()==1)
{
ed_nbMin.requestFocus();
}
在我的例子中,我只需要像这样使用 .setOnEditorActionListener() :
ed_nbHeure.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId== EditorInfo.IME_ACTION_DONE){
ed_nbMin.requestFocus();
}
return false;
}
});
感谢您的帮助