onFocusChange代码示例?

Ric*_*ich 12 android

我有一个包含2个字段的表单,您可以在几个月或几年内输入.如何设置表单,以便在输入年份时,将自动计算月份edittext字段并将其输入到自己的框中.同样,如果您在几个月内输入,我希望计算年数

任何人都可以给我示例代码吗?

Rav*_*yas 19

您有两种方法可以做到这一点:

  1. 通过字符处理一个字段来计算另一个字段

    为此,您可以将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) {
    
        }
    
    };
    
    Run Code Online (Sandbox Code Playgroud)

现在,您可以编写重新计算方法来处理数据.

2.另一种方法是在用户将焦点更改为其他字段时计算数据.

在这里你需要使用onFocusChangeListener:

<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        recalculate();
    }
});
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,根据您可能想要检查有效输入的设计.