2010-05-15 134 views
11

我有一個2個字段的表單,您可以在幾個月或幾年內輸入。如何設置表單,以便如果您輸入年份,月份edittext字段將自動計算並輸入到它自己的框中。同樣,如果你在幾個月內輸入,我想要計算年數onFocusChange代碼示例?

任何人都可以爲我提供示例代碼嗎?

回答

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) { 
    
        } 
    
    }; 
    

現在你可以寫重新計算方法來處理數據。

2。另一種方法是當用戶改變焦點到另一個字段時計算數據。

在這裏,你需要使用onFocusChangeListener:

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

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     recalculate(); 
    } 
}); 

無論哪種方式,取決於你可能要檢查的有效輸入設計。