動態 `addView(EditText)` 後,獲取所有輸入值有兩種主流方式:
EditText et = new EditText(this);
et.addTextChangedListener(new TextWatcher() {
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {
// s 即為當前輸入文本,可即時保存到數據模型
model.setInput(et.getId(), s.toString());
}
@Override public void afterTextChanged(Editable s) {}
});
container.addView(et);
// 需為每個 EditText 設置唯一 ID: et.setId(View.generateViewId());
List inputs = new ArrayList<>();
for (int i = 0; i < container.getChildCount(); i++) {
View child = container.getChildAt(i);
if (child instanceof EditText) {
inputs.add(((EditText) child).getText().toString());
}
}
// inputs 順序即添加順序