2017-05-25 53 views
1

我有一個值爲1的編輯文本,然後將其更改爲10並按下按鈕。我想將值1存儲在變量中,並將10存儲在單獨的變量中。如何執行此操作?Edittext以前的值

回答

0

您可以使用EDITTEXT方法addTextChangedListener

 editText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable arg0) { 

     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
     } 
    }); 
0

實現TextChangeListener

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void afterTextChanged(Editable arg0) { 

    } 

    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     prev_value = s.toString().trim(); // will print 1 
    } 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     latest_value = s.toString().trim(); // will print 10 
    } 
}); 
+0

如果以前淡水河谷是1個位數,這並不工作能正常工作時,第一個值是1後,我改變它到10,如果我刪除0中的10和類型15只有1被存儲爲prev值,但我想存儲10。 –

0

您可以通過添加addTextChangedListenereditText得到input值。

2.而不是使用varibale可以使用ArrayList<String>存儲oldnew輸入值,並在以後將其按您的需求。

下面是一個例子:

final ArrayList<String> values = new ArrayList<>(); 
    editText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

      values.add(charSequence.toString()); 
     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 


    // Use values 
    for (int i = 0; i < values.size(); i++) { 
     String value = values.get(i); 

     // Do something with value 
    } 

希望這將有助於〜

+0

如果我使用這個函數,只有前一個數字的一​​位數被存儲。例如:當第一個數字是15時,我擦除5和類型10,1被存儲爲先前的值。 –

+0

假設:用戶輸入>> 123然後擦除3並輸入45,再次擦除45並輸入9.因此刺激123 >> 1245 >> 129 ...您希望將哪些值存儲爲舊的和新的? – FAT

+0

對於上面的例子:數組列表值如下>> 1,12,123,12,124,1245,124,12,129 – FAT