簡體   English   中英

如何將EditText的值添加到列表視圖項?

[英]How to add EditText's value to the listview items?

我想將內容從EditText添加到ListView,這是我的無效代碼:

mass = userInput.getText().toString();
//fruits is a String[]
final List<String> fruits_list = new ArrayList<String(Arrays.asList(fruits));
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context.getApplicationContext(), android.R.layout.simple_list_item_1, fruits_list);
fruits_list.add(mass);                                    
lv.setAdapter(arrayAdapter);

該代碼將該項添加到列表視圖中,但是當重復該過程時,它將替換EditText中先前添加的字符串。

每次您從EditText讀取用戶條目時,您的代碼似乎都會創建一個新的fruits_list數組。 這將導致僅將最新條目添加到您的列表中,從而替換以前添加的所有條目。

您需要創建一次數組(可能作為類成員),然后在每次閱讀用戶輸入時對其進行更新,例如:

    private ArrayList<String> fruits_list;
    private ArrayAdapter<String> arrayAdapter;
    ...
    public void initialise(Context context) {
        fruits_list = new ArrayList<>(Arrays.asList(fruits));
        arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, fruits_list);
        lv.setAdapter(arrayAdapter);
    }
    ....
    public void getInput(
        mass = userInput.getText().toString();
        fruits_list.add(mass);
        arrayAdapter.notifyDataSetChanged();
    }

請注意,使用arrayAdapter.notifyDataSetChanged()表示已將新數據添加到基礎數據集。

正如@Aaron所說,您還應該將RecyclerView視為可能的替代品,盡管設置起來會有些復雜。

暫無
暫無

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

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