2012-12-20 47 views
1

我工作到Android的应用程序,我有一种情况,我无法弄清楚发生了什么。该应用程序有3个选项卡,使用Fragments和TabHost创建,每个选项卡都包含具有特定内容的文章列表。Android - 更改选项卡和列表视图项重复

我有最后一个选项卡内的列表视图。 listview是使用listAdapter创建的,并且是从drupal视图填充的。一切都很完美,但是当我改变标签并回到最初的标签时,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()); 
        } 

    } 

我怎样才能让不repeate从列表视图项目时,我的选项卡之间进行切换?

在此先感谢您的帮助!

问候,Cosso!

回答

2

你的答案就在这里:

  articleList.add(map); 

你继续再增加每次的项目。

当您在FragmentTransaction中调用.replace()时,您并未重新实例化片段对象,但FragmentManger每次都要求该片段为createView()以确保它适合ViewGroup并适当布局。

相关问题