'items of arraylist being displayed as one singular item on listview
so im making an app that stores meals eaten by the user. Im trying to display an arraylist of the quantity of food eaten by the user as well as the name of the food. However whenever I add an item to the array list it gets displayed as one singular item on the list view.
food = new HashMap<String, Double>();
foodChoice = new ArrayList<>();
spinner = (Spinner) findViewById(R.id.spinner3);
fAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, foodChoice);
fAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(fAdapter);
foodRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if(task.isSuccessful()){
Map<String, Object> map = task.getResult().getData();
for(Map.Entry<String, Object> entry : map.entrySet()){
foodChoice.add(entry.getKey());
}
fAdapter.notifyDataSetChanged();
}
}
});
AddFood = (Button)findViewById(R.id.AddFoodbtn);
AddFood.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
addItem();
}
this is the method that adds the items to array list I think the logic error is here but i'm not too sure what Im doing wrong.
private void addItem() {
Quantity = (EditText) findViewById(R.id.EtQuantity);
AddFood = (Button) findViewById(R.id.AddFoodbtn) ;
amount = Quantity.getText().toString().trim();
amountNumber = Double.parseDouble(amount);
SelectedItem = spinner.getSelectedItem().toString();
food.put(SelectedItem, amountNumber);
keySet = food.keySet();
foodName = new ArrayList<>(keySet);
values = food.values();
valueString = new ArrayList<String>();
MealList = new ArrayList<String>();
for(Double i: values){
valueString.add(String.valueOf(i));
}
addFood(foodName + " " + valueString + " KG");
adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, MealList);
listView.setAdapter(adapter);
}
private void addFood(String item) {
MealList.add(item);
listView.setAdapter(adapter);
}
});
listView = findViewById(R.id.listView);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// String name = food.get(i);
// makeToast(name);
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
return false;
}
});
}
public Toast toast;
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
