gpt4 book ai didi

java - 从同一个ArrayList中过滤出不同的ListView

转载 作者:行者123 更新时间:2023-12-01 13:29:52 25 4
gpt4 key购买 nike

所以我正在开发一个新闻应用程序,它有一个 Arraylist TopNewsList包含所有类别的所有新闻。现在我有一个特定于类别的新闻列表,因此我想在适配器中对不同的 Listviews 使用相同的数组列表,我希望适配器根据我提供的类别id(我在arraylist中有它)过滤新闻,Arraylist实际上是 - ArrayList<HashMap<String, String>>带有 id、新闻标题、imageurl 等请注意,我不能使用副本,因为有像 read/unread 这样的字段这应该反射(reflect)跨类别。

这是我的 ArrayList 仅供引用

HashMap<String, String> map = new HashMap<String, String>();

// adding each child node to HashMap key => value
map.put(TAG_CATEGORYID, id);
map.put(TAG_TITLE, title);
map.put(TAG_DESCRIPTON, description);
map.put(TAG_CREATED, created);
map.put(TAG_IMAGE, image);
map.put(TAG_IMAGE2, image2);

// adding HashList to ArrayList
TopNewsList.add(map);

最佳答案

从设计的角度来看,你应该创建类/类型 News与此字段。所以你会得到

class News
{
String id;
String title;
// and so on
}

然后你将有ArrayList<News> allNews新闻列表。

如果您想过滤并仅从列表中获取一些新闻,只需创建另一个列表

List<News> newsOfSportsCategory = ArrayList<News>();
for(int i=0;i< allNews.size();i++)
{
if(allnews.get(i).id.equals("idOfSportsCat")
{
newsOfSportsCategory.add(allnews.get(i));
}
}

您将获得包含运动类别的列表,这不是副本,因为您仅保留对 allNews 列表中的对象的引用。

关于java - 从同一个ArrayList中过滤出不同的ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com