我有一个包含2个字段的表单,您可以在几个月或几年内输入。如何设置表单,以便在输入年份时,将自动计算月份edittext字段并将其输入到自己的框中。同样,如果您输入了几个月,我希望计算年数
有人能为我提供示例代码吗?
答案 0 :(得分:19)
您有两种方法可以做到这一点:
按字符处理一个字段来计算其他字段
为此,您可以将addTextChangedListener与文本观察器一起使用,您可以在其中更改onTextChanged方法来处理数据。
//from editHandle = (EditText) findViewById(R.id. <<your EditText>> );
editHandle.addTextChangedListener(redoWatcher);
// listener
private TextWatcher redoWatcher = new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
recalculate();
}
@Override
public void afterTextChanged(Editable s) {
}
};
现在您可以编写重新计算方法来处理数据。
2。另一种方法是在用户将焦点更改为其他字段时计算数据。
在这里你需要使用onFocusChangeListener:
<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
recalculate();
}
});
无论哪种方式,您可能需要检查有效输入。