我应该直接将数据项添加到我的适配器还是先将它们传递给我的班级?

时间:2013-12-13 17:00:37

标签: android listview android-listview listadapter

我目前正在做一个Android应用程序(Android新手),我看到我可以将字符串数据直接传递给我的适配器而不是创建新对象

    listItem = new ArrayList<listItems>();
    ///this addField is another class in which my data base stored an arraylist of results
     for (addField field : groupList) {

         item = new listItems(field.getFieldOne(),field.getFieldTwo(),field.getFieldThree(),field.getFieldFour(),field.getFieldFive(),0);

              item.setFieldOne(field.getFieldOne());
              item.setFieldTwo(field.getFieldTwo());
              item.setFieldThree(field.getFieldThree());
              item.setFieldFour(field.getFieldFour());
              item.setFieldFive(field.getFieldFive());

                  listItem.add(item);

                 //adapter.add(item);  <-- code in question


            adapter.notifyDataSetChanged();

将对象传递给数组列表然后通知适配器更改数据或直接将对象传递给适配器有什么区别?

我猜测,因为适配器数据源连接到listItems类,它仍然会看到数据发生变化,但直接将它传递给列表视图适配器是否有优势?

1 个答案:

答案 0 :(得分:0)

它几乎是一回事。检查来源并亲眼看看:  https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter.java

如果你在适配器上调用它:

setNotifyOnChange(true)

...然后在使用适配器的add()方法时自动调用notifyDataSetChanged()。