这个逻辑对我来说很有意义,而且我无法理解为什么它只打印出最后一个元素,但由于某种原因,这个代码运行正常,除了我的微调器中的每个元素它都说道:5和每个人都有“ShortCourseDesc6”。它应该每次递增。
public void setListData()
{
for (int i = 0; i < 7; i++) {
List<String> imageURLArray = new ArrayList<String>();
imageURLArray.add("ShortCourseDesc1");
imageURLArray.add("ShortCourseDesc2");
imageURLArray.add("ShortCourseDesc3");
imageURLArray.add("ShortCourseDesc4");
imageURLArray.add("ShortCourseDesc5");
imageURLArray.add("ShortCourseDesc6");
Iterator<String> iter = imageURLArray.iterator();
final SpinnerModel sched = new SpinnerModel();
/******* Firstly take data in model object ******/
for(int z = 0; iter.hasNext(); z++)
{
sched.setCourseName("Course: " + z);
sched.setImage("image" + z);
sched.setCourseShortDesc(iter.next());
}
/******** Take Model Object in ArrayList **********/
CustomListViewValuesArr.add(sched);
}
}
答案 0 :(得分:1)
您反复更新同一个微调器,正如我所理解的那样,SpinnerModel
是一个接口,那么如何实例化它呢?我认为解决方案是使用SpinnerListModel
(http://docs.oracle.com/javase/7/docs/api/javax/swing/SpinnerListModel.html):
SpinnerModel model = new SpinnerListModel(Arrays.asList("Hello", "This", "Is", "A", "Spinner", "List", "Model"));
答案 1 :(得分:0)
你必须有更多的微调器。 :)因为你只更新sched SpinnerModel对象。然后在遍历所有元素后打印它,这样就可以得到ShortCourseDesc6和5。 尝试将代码更改为:
public class SpinnerData{
private String courseName;
private String image;
private String courseShortDesc;
//getters and setters...
}
List<SpinnerData> schedList = new ArrayList<SpinnerData>();
/******* Firstly take data in model object ******/
for(int z = 0; iter.hasNext(); z++)
{
SpinnerDatasched= new SpinnerData();
sched.setCourseName("Course: " + z+1);
sched.setImage("image" + z+1);
sched.setCourseShortDesc(iter.next());
schedList.add(sched);
}
SpinnerListModel spinnerListModel = new SpinnerListModel(schedList);
或者只是......如果我的建议是错误的,请尝试另一个
/******* Firstly take data in model object ******/
for(int z = 0; iter.hasNext(); z++)
{
SpinnerModel sched = new SpinnerModel();
sched.setCourseName("Course: " + z+1);
sched.setImage("image" + z+1);
sched.setCourseShortDesc(iter.next());
CustomListViewValuesArr.add(sched);
}