gpt4 book ai didi

Android - 重复更改选项卡和 ListView 项目

转载 作者:行者123 更新时间:2023-11-29 21:52:58 25 4
gpt4 key购买 nike

我在 android 中处理一个应用程序,我遇到过一种情况,我无法弄清楚发生了什么。该应用程序有 3 个选项卡,使用 Fragments 和 TabHost 创建,每个选项卡都有一个包含特定内容的文章列表。

我在最后一个选项卡中有一个 ListView 。 ListView 是使用 listAdapter 创建的,并从 drupal View 中填充。一切正常,但当我更改选项卡并返回初始选项卡时, ListView 的项目会重复。

标签内容的代码是:

   httpconnect httpcon = new httpconnect();   
ArrayList<HashMap<String, String>> articleList = new ArrayList<HashMap<String, String>>();
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
View v = inflater.inflate(R.layout.recomandate, container, false);
list=(ListView) v.findViewById(R.id.list);
infoGet();
return v;
}


public void infoGet() {
try {
JSONArray jArray = new JSONArray(httpcon.connectareHttp(url));

for(int i=0; i<jArray.length(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject json = jArray.getJSONObject(i);

String id;
id = json.getString("nid");
map.put(KEY_ID, id);

String articleTitle;
articleTitle= json.getString("title");
map.put(KEY_TITLE, articleTitle);

String content;
content= json.getString("body");
map.put(KEY_BODY, content);

String img;
img = json.getString("field_image");
map.put(KEY_THUMB_URL, img);

articleList.add(map);
}

adapter = new ListAdapter(getActivity(), articleList);
list.setAdapter(adapter);

} catch (Exception e) {

Log.e("log_tag", "Error Parsing Data "+e.toString());
}

}

当我在选项卡之间切换时,如何不重复 ListView 中的项目?

在此先感谢您的帮助!

问候,科索!

最佳答案

你的答案在这里:

         articleList.add(map);  

你每次都重新添加项目。

当您在 FragmentTransaction 中调用 .replace() 时,您并不是在重新实例化 fragment 对象,而是 FragmentManger 每次都要求 fragment createView()以确保它适合并在 ViewGroup 上正确布局。

关于Android - 重复更改选项卡和 ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13969953/

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