【问题标题】:Dynamic way to create List<> at runtime and add values in java [closed]在运行时创建 List<> 并在 java 中添加值的动态方法 [关闭]
【发布时间】:2019-12-31 22:15:00
【问题描述】:

我是安卓新手。我当然有可扩展的列表视图,其中一个主题有 n 个讲座并添加如下数据:

List<String> Topic1 = new ArrayList<String>();
Topic1.add("Lecture 1");
Topic1.add("Lecture 2");
Topic1.add("Lecture 3");
Topic1.add("Lecture 4");
Topic1.add("Lecture 5");

List<String> Topic2 = new ArrayList<String>();
Topic2.add("Lecture 1");
Topic2.add("Lecture 2");
Topic2.add("Lecture 3");
Topic2.add("Lecture 4");
Topic2.add("Lecture 5");

List<String> Topic3 = new ArrayList<String>();
Topic3.add("Lecture 1");
Topic3.add("Lecture 2");
Topic3.add("Lecture 3");
Topic3.add("Lecture 4");
Topic3.add("Lecture 5");

expandableListDetail.put("Topic 1", Topic1);
expandableListDetail.put("Topic 2", Topic2);
expandableListDetail.put("Topic 3", Topic3);

但如果有更多主题及其讲座但不知道如何做到这一点,我想要有效的方法来创建列表并在运行时添加值。

【问题讨论】:

  • 制作一个本地json文件并从中解析,或者将你的逻辑移动到服务器端并通过API服务使用它。
  • 试用 RecyclerView'
  • 使用 ExpandableListAdapter,示例在这里:stackoverflow.com/a/9824382/5612090
  • 谢谢你,但我目前关注@antygravity的静态方式

标签: java android android-studio


【解决方案1】:

如果您的应用是服务器端,请尝试以下操作: 首先创建列表列表

List<List<String>> topicDataList = new ArrayList<List<String>>();

创建父子列表并在其中插入响应数据,然后

for (int j = 0; j < parentList.size(); j++) {
            List<String> tempList = new ArrayList<String>();

            for (int i = 0; i < childList.size(); i++) {

                    tempList.add(childList.get(i).getChild_name());

                }
            }
            topicDataList.add(tempList);

        }
        for (int k = 0; k < parentList.size(); k++) {

            expandableListDetail.put(parentList.get(k).getChild_name(), topicDataList.get(k));
        }
return expandableListDetail;

【讨论】:

    【解决方案2】:

    您应该改用 RecyclerView,它类似于 ListView,但功能更强大。您只需创建一个 Adapter 类来处理您的所有项目,然后每当您的列表更新时,更改就会通过调用 adapter.notifyDatasetChanged() 传播到整个;

    这是一篇关于入门的好文章,Recycler View Basics

    【讨论】:

      猜你喜欢
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 2018-06-27
      • 2014-06-02
      • 2021-12-23
      • 2011-02-28
      • 2013-06-18
      相关资源
      最近更新 更多