Java 迭代器字符串数组未捕获所有元素
这个逻辑对我来说是有意义的,我无法理解为什么它只打印最后一个元素,但出于某种原因,除了微调器中的每个元素外,这段代码运行良好,它对每个元素都显示课程:5和“ShortCourseDesc6”。它应该每次都递增Java 迭代器字符串数组未捕获所有元素,java,android,arrays,iterator,Java,Android,Arrays,Iterator,这个逻辑对我来说是有意义的,我无法理解为什么它只打印最后一个元素,但出于某种原因,除了微调器中的每个元素外,这段代码运行良好,它对每个元素都显示课程:5和“ShortCourseDesc6”。它应该每次都递增 public void setListData() { for (int i = 0; i < 7; i++) { List<String> imageURLArray = new ArrayList<String>()
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);
}
}
public void setListData()
{
对于(int i=0;i<7;i++){
List imageURLArray=新建ArrayList();
imageURLArray.add(“ShortCourseDesc1”);
imageURLArray.add(“ShortCourseDesc2”);
imageURLArray.add(“ShortCourseDesc3”);
imageURLArray.add(“ShortCourseDesc4”);
imageURLArray.add(“ShortCourseDesc5”);
imageURLArray.add(“ShortCourseDesc6”);
迭代器iter=imageURLArray.Iterator();
最终喷丝头型号sched=新喷丝头型号();
/*******首先在模型对象中获取数据******/
for(int z=0;iter.hasNext();z++)
{
附表setCourseName(“路线:+z”);
附表setImage(“图像”+z);
sched.setCourseShortDesc(iter.next());
}
/********在ArrayList中获取模型对象**********/
CustomListViewValuesArr.add(附表);
}
}
您必须有更多的微调器。:)因为您只更新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);
你一次又一次地更新同一个微调器,正如我正确理解的,
SpinnerModel
是一个接口,那么如何实例化它呢?我认为解决方案是使用喷丝头列表模型():
根据您当前的代码,ShortCourseDesc1到ShortCourseDesc6将打印6次。我看不到只有6次将打印不太清楚您的意思,如何向微调器添加更多微调器?这正是打印“课程:5和快捷课程esc6”6次的内容。我已经检查了两个适合您的版本。它不像“SpinnerListModel”,您是指“SpinnerModel”还是“List”?SpinnerListModel是java swing中的一个类。SpinnerModel是一个抽象类,因此无法对其进行初始化。因为在java中,抽象类不能使用“new”创建。在我的第一个清单中,我实现了模型类SpinnerData。
/******* 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);
}
SpinnerModel model = new SpinnerListModel(Arrays.asList("Hello", "This", "Is", "A", "Spinner", "List", "Model"));