使用两个edittexts

时间:2012-10-04 20:15:23

标签: android android-edittext

这是我的问题,我正在设计一个应用程序,我使用两个编辑文本和按钮,所以当我使用最大长度为4的输入过滤器并将焦点设置为其他编辑文本,当我写,焦点传递给第二个编辑文本,但它没有写入我输入的东西而不是它继续写入第一个。

有没有办法只在第一个编辑文本停止写入4个字符,然后写入第二个而不改变第一个谢谢。

这是我的问题代码的一部分:

String inDigit = ((Button) view).getText().toString();
//Costo de venta
if (inStr.equals("0")) {
    inStr = inDigit; 
} else {
inStr += inDigit; 
}
int maxLength = 4;
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(maxLength);
editX.setFilters(FilterArray);
editX.setText(inStr);

if(editX.getText().toString().length() == 4)
{
    if(editX.hasFocus()){
        editY.requestFocus();
        return;
    }

    }else {
        editY.getText().toString();
        editY.setText("");
    }

    if (lastOperator == '=') {
        result = 0;
        lastOperator = ' ';
    }

1 个答案:

答案 0 :(得分:1)

  

有没有办法只在第一个编辑文本停止写入4个字符,然后写入第二个而不改变第一个

是。假设您有第一个EditText被称为edit,第二个是类变量edit2。一旦超过第四个字符,我们将使用TextWatcher将焦点从edit切换为edit2

edit.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() == 4) {
            edit2.requestFocus();
        }
    }
});