Courseprof.java:
This is iterating my data and putting it onto the spinner, but when i run the app it only loads the first data from the list. For example: i have strings on my list which are ["r12 cs100 a20","r02 cs120 a40","r90 cs001 a30". Only "r12 cs100 a20"] was loaded in my spinner. but I want to load all the data in my list :'(
@SuppressWarnings({ "rawtypes" })
public void addData(ArrayList<Properties> courseusers) {
for (Iterator i = courseusers.iterator(); i.hasNext();) {
Properties p = (Properties) i.next();
Spinner mySpinner = (Spinner) findViewById(R.id.spincourse);
List<String> itemList = Arrays.asList(p.getCourseId()+" "+p.getRoom()+" "+p.getSection());
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item,
itemList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);
}
}
Properties.java:
String roomid,courseid,sectionid;
int profid;
public String getRoom() {
return roomid;
}
public void setRoom(String roomid) {
this.roomid = roomid;
}
public String getCourseId() {
return courseid;
}
public void setCourse(String courseid) {
this.courseid = courseid;
}
public String getSection() {
return sectionid;
}
public void setSection(String sectionid) {
this.sectionid = sectionid;
}
Because you are creating list
with single
element in every iteration of loop along with adapter and spinner initialization .
Solution : Move spinner and adapter code outside loop (at the end) and use mutable list to add data in loop.
// move initialization of references before loop
Spinner mySpinner = (Spinner) findViewById(R.id.spincourse);
List<String> itemList = new ArrayList<>();
for (Iterator i = courseusers.iterator(); i.hasNext();) {
Properties p = (Properties) i.next();
// add items to list
itemList.add(p.getCourseId()+" "+p.getRoom()+" "+p.getSection());
}
// data list is ready so setup adapter and display spinner
ArrayAdapter<String> adapter;
adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item,
itemList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.