java - 我的微调器仅加载列表中的第一个数据(字符串)

标签 java android eclipse

Courseprof.java:

这是迭代我的数据并将其放到微调器上,但是当我运行该应用程序时,它只加载列表中的第一个数据。例如:我的列表中有字符串 ["r12 cs100 a20","r02 cs120 a40","r90 cs001 a30"。我的微调器中只加载了“r12 cs100 a20”]。但我想加载列表中的所有数据:'(

@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);


        }
    }

属性.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;
    }

最佳答案

因为您在循环的每次迭代以及适配器和微调器初始化中使用 单个 元素创建 list

解决方案:将微调器和适配器代码移到循环外(最后)并使用可变列表在循环中添加数据。

// 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);

关于java - 我的微调器仅加载列表中的第一个数据(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187592/

相关文章:

android - Xamarin 推送通知 Firebase Android 12(导出)

java - 无法编辑 JAR 中的 java 类

eclipse - IntelliJ 中的调试器步骤过滤器?

java - 如何修复无法添加或更新子行: a foreign key constraint fails

java - 关于包含无法连载的成员的连载

java - 如何保存用户的区域设置(在应用程序中)?

linux - 不同服务器上的 Eclipse cdt 远程构建和远程调试

java - ORMLite 初始化外部集合

android - 自定义复选框图像被切断

android:layout_alignParentEnd 不适用于 API 14