簡體   English   中英

我想在android java中動態添加不超過5個編輯文本的編輯文本

[英]I want to add Edit Text dynamically not more not less than 5 Edit Texts in android java

我需要在單擊按鈕時一個一個地動態添加 5 個輸入字段 (EditText),並希望從它們中獲取值並使用帶有 MVVM 的 Room Persistence 將它們存儲到數據庫中。

在這里我動態添加視圖

private void addEditTextView() {
    View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
    EditText val1 = inputView.findViewById(R.id.input_value_1);
    binding.layoutList.addView(inputView);
}

任何建議都會非常有幫助。 先感謝您。

“當我單擊添加按鈕時,它正在一個一個地添加輸入字段,此代碼正在運行,但我只想限制 5 個字段,不多不少,並從中獲取值。”

如果您想在單擊按鈕時恰好添加 5 個字段,我建議設計一個包含 5 個字段的片段,然后在單擊按鈕時將片段膨脹到您的父視圖中。 然后使用您正在使用的數據對片段進行適當的編碼。

然后,如果需要,您可以在單擊按鈕時縮小片段以清除視圖或添加其他一些方法來在需要時清除片段。 在我看來,這比你目前正在做的要容易得多。

假設這是某種形式,您不妨在片段中包含一個提交按鈕。

您可以簡單地定義一個整數並在每次添加 EditText 時增加它,但是每次調用該方法時您都應該檢查您的整數是否小於 5。

例子

private void addEditTextView() {
int count = 0;
if (count < 5){
View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
EditText val1 = inputView.findViewById(R.id.input_value_1);
binding.layoutList.addView(inputView);
count++;
}
}

根據孩子數量添加視圖

private void addEditTextView() {
    if (binding.layoutList.getChildCount() <= 5) {
        View inputView = getLayoutInflater().inflate(R.layout.row_edit_text, null, false);
        EditText val1 = inputView.findViewById(R.id.input_value_1);
        binding.layoutList.addView(inputView);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM