Iterator String Array没有抓取所有元素

时间:2014-03-02 17:09:45

标签: java android arrays iterator

这个逻辑对我来说很有意义,而且我无法理解为什么它只打印出最后一个元素,但由于某种原因,这个代码运行正常,除了我的微调器中的每个元素它都说道: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);
    }

  }

2 个答案:

答案 0 :(得分:1)

您反复更新同一个微调器,正如我所理解的那样,SpinnerModel是一个接口,那么如何实例化它呢?我认为解决方案是使用SpinnerListModelhttp://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);
}