我想根據條件動態創建EditTextFields。條件是,如果我開始在第一個EditTextField上打字,它將在底部創建一個EditTextField,並在第二個時候創建第三個EditTextField。同樣,如果上EditTextField中沒有文本,我想刪除底部文本。謝謝。在EditText上輸入時在視圖中添加EditText字段
回答
使用父視圖,如ScrollView
,您知道您可以添加靈活的內容。然後使用TextWatcher
a/k/a a text change listener。然後,您可以創建一個新的文本視圖,如果將文本輸入EditText
字段中,您將添加到ScrollView
。
爲了整潔,我可能會創建一個自定義的TextView
類,它包含這個文本更改偵聽器和複製檢查。這裏的例子,你如何可以添加一個TextView
//instance variable
private LinearLayout containerLayout;
private newTextViewCreated = false;
//initialize your conatinerLayout before you use it
//and create your first edit text field
public void onCreate(Bundle savedInstaceState){
containerLayout = (LinearLayout)findViewById(R.id.conatinerLinearLayout);
createEditText();
}
private void createEditText(){
EditText editText = new editText(this);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(count > 0 && !newTextViewCreated){
createEditText();
newTextViewCreated = true;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
//TODO Auto-generated method stub
}
});
containerLayout.addView(editText);
}
我沒有測試了這一點,現在我正在寫,但這裏是我在想什麼。請閱讀TextWatcher如何工作的說明,以便了解內部方法。你將不得不使用條件語句,但是你在做什麼是監聽輸入字符數量的變化,然後在向每個文本視圖添加字符時進行遞歸調用以創建額外的視圖。我使用布爾標誌來顯示視圖何時被創建,所以每次改變字符時我們都不會添加一個。根據您的評論,我移出了createEditText方法。如果你自己創建了EditText
課程,你可以添加一個方法來設置/獲取這個TextView
是否跨越另一個的狀態。要刪除你只需添加一個刪除條件,將刪除線性佈局的視圖。
但是如何動態添加和刪除EditText字段。 – user2760685
您將使用'TextWatcher'。它會告訴你一切你需要知道的EditText中的內容。我將在上面添加一個示例。 – Rarw
在內部類中使用非最終變量是不可能的。 – user2760685
顯示/隱藏他們在您的佈局,如果你知道需要EDITTEXT領域的總金額或編程添加它們像這樣:
EditText myET = new EditText(MyActivity.this);
myET.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
LayoutContentView.addView(myET);
然後檢查:
if (myET.getText().toString().trim().equals(""))
{
//Don't Show
}else{
//SHOW
}
SO問題可以幫助: https://stackoverflow.com/a/6792359/350421
EditText toAdd = new EditText(this);
list.add(toAdd);
號動態地,我們應該添加任意數量的editText字段。 – user2760685
這將有助於:http://stackoverflow.com/a/6792359/350421 – jasonflaherty
用戶TextWatcher 與TextWatcher實現您的活動,並重寫方法
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
是的,我試過在onTextChanged。但是如何動態添加和刪除EditText字段。 – user2760685
- 1. 在Android中添加視圖到EditText
- 2. EditText字段沒有輸入
- 3. 同時輸入兩個edittext字段
- 4. 添加輸入類型時EditText崩潰
- 5. Android:在用戶輸入EditText時創建倒數字段字段
- 6. 編號在輸入時不顯示在editText字段中(Android 2.2)
- 7. 無法在edittext上輸入文字android
- 8. 如何在EditText上添加圖像
- 9. Android - 在editText字段中沒有輸入時程序崩潰
- 10. 在片段中動態添加Edittext&Imagebutton
- 11. 在EditText中輸入的文字前添加空格?
- 12. 如何在EditText中輸入時過濾列表視圖?
- 13. 當在AlertDialog中選擇positiveButton時,將editText輸入添加到recyclerView
- 14. Android佈局:試圖在列表視圖上添加edittext
- 15. 添加和EditText上
- 16. EditText - 在輸入時從EditText中獲取文本
- 17. 輸入時在EditText中清除文本
- 18. EditText在列表視圖中?
- 19. 在畫布中添加EditText
- 20. 如何在edittext字段中輸入文字?
- 21. 在EditText中自動添加字符
- 22. 如何在editText中添加數字
- 23. 在列表視圖項上動態添加edittext android
- 24. 如何在EditText中輸入數字後設置/更改EditText的背景圖像?
- 25. 當我動態添加視圖時,EditText上的鍵盤重疊
- 26. 如何在Android的EditText視圖中添加圖標?
- 27. 將edittext添加到自定義視圖
- 28. 將editText添加到自定義視圖
- 29. 在片段上輸入EditText,並填寫所有其他片段
- 30. 如何將圖像放入EditText字段?
你只會有3個EDITTEXT領域?如果是這樣,我會在視圖中創建它們,並在文本位於其他editText字段時顯示/隱藏。你有一些代碼嗎?你有什麼嘗試? – jasonflaherty
我同意顯示/隱藏方法可能是最簡單的,如果你有一個具體數量的最大的領域之前已知的領域。 – nhgrif
否3 editText字段。動態地,我們應該添加任意數量的editText字段。 – user2760685