我有一个包含 2 个字段的表单,您可以在其中输入月份或年份。我如何设置表单,以便如果您输入年份,月份 edittext 字段将自动计算并输入到它自己的框中。同样,如果您输入月份,我希望计算年份
谁能给我示例代码?
最佳答案
您有两种方法可以做到这一点:
对一个字段进行逐字符处理,计算出另一个字段
为此,您可以将 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) { } };
现在可以编写recalculate方法来处理数据了。
2。另一种方法是在用户将焦点转移到其他字段时计算数据。
这里需要使用onFocusChangeListener:
<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
recalculate();
}
});
无论哪种方式,根据您可能想要检查有效输入的设计。
关于android - onFocusChange 代码示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841973/