'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