Reputation: 85
I have two spinners, one where the user selects the food type and a second that is meant to display the food (e.g. Breakfast and Porridge). However my second spinner isn't displaying my foods. Why would this appear? Below is my MainActivity class and my Food class code.
private void chooseBreakfast() {
planspinner1 = (Spinner) findViewById(R.id.planspinner);
List<Food> planlist = new ArrayList<Food>();
planlist.add(new Food("Porridge-35g/140cal",4));
planlist.add(new Food("Coffee-10g/10cal",1));
planlist.add(new Food("Toast-30g/90cal",3));
for(int i =0;i<planlist.size();i++){
System.out.println(planlist.get(i).getName()+ "has" + planlist.get(i).getCalories()+ "calories.");
}
ArrayAdapter<Food> planAdapter1 = new ArrayAdapter<Food>(this,android.R.layout.simple_spinner_item, planlist);
planAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
planspinner1.setAdapter(planAdapter1);
}
public class Food {
private String mstrName;
private int mintCalories;
public Food(String pstrName, int pintCalories) {
mstrName = pstrName;
mintCalories = pintCalories;
}
public String getName() {
return mstrName;
}
public int getCalories() {
return mintCalories;
}
}
Why would my second spinner appear like this?
Upvotes: 0
Views: 42
Reputation: 1933
Override toString() method of your Food class and it might work.
public class Food {
private String mstrName;
private int mintCalories;
public Food(String pstrName, int pintCalories) {
mstrName = pstrName;
mintCalories = pintCalories;
}
public String getName() {
return mstrName;
}
public int getCalories() {
return mintCalories;
}
public String toString() {
return getName();
}
}
Upvotes: 1