2012-12-20 72 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並適當佈局。

相關問題