当前位置: 首页 > 知识库问答 >
问题:

将arrayList值获取到android studio中listView的ArrayAdapter中

桑坚
2023-03-14

我正在尝试将ArrayList中的一个值放入我的listView,下面是详细信息。

这是ArrayList信息的示例

private static final ArrayList<User> users = new ArrayList<User>(){{
        add(new User("Nevin Hobden",38,"Male","Friend","New Mexico","NM"));
        add(new User("Stillman Macken",32,"Male","Friend","Arizona","AZ"));
        add(new User("Stevy Ranscomb",36,"Male","Friend","Arizona","AZ"));
        add(new User("Lynelle Garstang",22,"Female","Family","California","NE"));

我想从用户ArrayList中获取州数据,例如,我只想获取“新墨西哥州”、“亚利桑那州”、“亚利桑那州”和“加利福尼亚州”的数据,并将其显示在我的listView中

如果可能的话,我还想删除副本并按升序排序

   Arizona
   California
   New Mexico

下面是我的代码

   ListView stateListView;
   ArrayList<DataServices.User> stateList = DataServices.getAllUsers();
   ArrayAdapter<DataServices> arrayListAdapter;

   stateListView = view.findViewById(R.id.stateListView);
   arrayListAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,android.R.id.text1, stateList);
   stateListView.setAdapter(arrayListAdapter);

我知道我不应该在arrayAdapter中使用stateList,但是我不知道该如何更改该部分,非常感谢您的帮助。谢谢

共有2个答案

浦墨竹
2023-03-14

请不要使用ListView。ListView已经过时,效率不如RecyclerView。下面是一个很好的文档如何使用RecyclerView

融修平
2023-03-14

如果您想获取状态列表,您可以循环遍历原始列表并将状态放入ArrayList

ArrayList<String> states = new ArrayList<>();
for(DataServices.User user : users) {
    states.add(user.state);
}

如果您只需要唯一的状态,那么可以在那里使用哈希集。设置消除重复项。

HashSet<String> states = new HashSet<>();
for(User user : users) {
    states.add(user.state);
}

// then convert it back to a list
ArrayList<String> unique_states = new ArrayList<>(states);

如果希望对其进行排序,可以使用集合。排序,对列表进行排序

Collections.sort(unique_states);

如果您的Java版本支持它,那么您也可以在更少的流行中执行此操作,但它可以完成相同的任务

List<String> statesList = users.stream()
                               .map(u -> u.state)
                               .collect(Collectors.toList());

Set<String> statesSet = users.stream()
                             .map(u -> u.state)
                             .collect(Collectors.toSet());
 类似资料:
  • 我有一个SQLite数据库,其中包含以下信息 我将项目输出到列表视图。我的问题是如何让我的OnItemClick正确地告诉我选择的值?当我单击保存时,我希望“保存”通过吐司显示。当我尝试输出时,我只能输出项目位置。我不想要列表视图中的位置,我对字符串值更感兴趣。 代码:主菜单活动。JAVA listview。xml

  • 我目前正在构建一个Android议程活动,其中包括4个列表视图。基本上,我在AgendaDataReady(数组列表约会)上得到了由Web服务协调员调用的方法。此方法对约会进行排序,这样,将填充 4 个新的 ArrayList。代码如下: 这段代码工作正常,但是我不想再使用android了。R.layout.simple_list_item_1布局。所以我构建了一个自定义布局的ArrayAdapt

  • 问题内容: 我正在尝试从ArrayList中获取值。这是我的代码示例: 修订版感谢所有答案,我可能应该在代码中添加更多内容。在Car类中,我有另一种方法来计算包括税金在内的总费用。 在主要班级 再次感谢 问题答案: 假设您的课程有价格的吸气剂方法,则可以简单地使用 元素的索引在哪里。 您也可以使用 如果需要存储,还需要从函数中返回 主要 并更改您的功能类型

  • 我有这个java类: 我使用ArrayList来获取这个for循环所需的尽可能多的值 如何从snake获得XPO和YPO。获取(i)?有什么简单的方法可以做到这一点吗?当我打印snake时。这就是我得到的:Coordinate@634b392;

  • 问题内容: 我有一个要与一起使用以添加不同样式的行的。这些行是在我的应用程序中的不同状态下创建的,并且应根据不同状态对行进行样式设置(例如颜色和填充物)。 这是一些伪代码: 创建时: 在不同的状态下(由另一个线程使用MessageHandler触发),在包含消息的列表中添加一行: 效果很好,根据状态不同,消息会在列表中弹出,但是我想让行的样式不同。这该怎么做?使用自定义的Add()方法创建自定义的