2017-06-13 112 views
-2

我被困在用戶使用按鈕創建兩個新動態EditTexts的問題上。 其中EditText代表文章,其他代表重量。動態創建兩個EditText並將值保存在模型中

現在...在填充之後,我們假設6 EditTexts或代表3個模型的3行。

它應該將它們存儲在ModelList<Model>List中。 所以我卡住的主要問題是我需要保存模型中的文章和重量的部分,並更新如果更新發生在任何EditText

的模型是這樣的:

public class Dispatch { 
    private String Article; 
    private String Weight; 
    . 
    . 
    .getters and setters 

} 

The view

我已經實現onTextChanged其中,用戶輸入後,驗證等領域......但如何動態地創建模型,或者更新對應相同到它的領域。

這是我要創建的這個文章EditText

private EditText createArticle(){ 
     EditText et_article = new EditText(this.getContext()); 
     et_article.addTextChangedListener(this); 
     return et_article; 
    } 

回答

0

你可以嘗試這樣的

private void createArticle() { 
    // create new 'Dispatch' item 
    Dispatch dispatch = new Dispatch(); 
    EditText et_article = new EditText(this.getContext()); 
    // pass the 'Dispatch' item to text change listener, so that it can 
    // updated accordingly 
    et_article.addTextChangedListener(new TextChangeListener(dispatch)); 
    // add the same 'Dispatch' item to the list 
    list.add(dispatch) 
    return et_article; 
} 

private class TextChangeListener implements TextWatcher { 
    private Dispatch dispatch; 

    TextChangeListener(@NonNull Dispatch dispatch) { 
     this.dispatch = dispatch; 
    } 

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

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
     // assign the value after verification 
     dispatch.article = s.toString(); 
    } 

    @Override 
    public void afterTextChanged(Editable s) {} 
} 
+0

好東西,但我怎麼能知道我在更新的文章或重量?什麼時候創建2個調度模型,然後更新第一個? – FiN

+0

你可以在'TextChangeListener'內設置另一個變量,它將檢查是否更新'dispatch.article'或'dispatch.weight'就像if(tag == 1){dispatch.article = s.toString()} else {dispatch .weight = s.toString()}' –

相關問題