[英]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.