2015-05-08 50 views
1

在SharedPreference中保存自定義ListView中的所有值時遇到問題。在SharedPreference中保存列表視圖中存在的所有值

實際上,我的佈局包含一個複選框,textview(自定義列表視圖)和一個複選框(select_all),用於選擇我的自定義列表視圖中的所有數據。 單擊select_all複選框時,自定義列表視圖中的所有值都被選中,但只有前13個值存儲在我的SharedPreference中。 這是我的計劃片斷,

 selectAll.setOnClickListener(new OnClickListener() { 


     @Override 
     public void onClick(View v) { 

      boolean isChecked = selectAll.isChecked(); 

      if (isChecked) { 


       for (int i = 0; i < exportItems.getChildCount(); i++) { 

        listViewLayout = (LinearLayout) exportItems 
          .getChildAt(i); 
        cb = (CheckBox) listViewLayout 
          .findViewById(R.id.export_chk); 

        if (strTypes.equals("Orders/Invoices")) { 
         cb.setChecked(true); 
         ordRefNo = ordersList.get(i) 
           .getHhTran_referenceNumber(); 
         supporter.saveOrderInPreference(ordRefNo, 1); 

        } else if (strTypes.equals("Credit Note")) { 
         cb.setChecked(true); 
         cnRefNo = creditNoteList.get(i) 
           .getHhTran_referenceNumber(); 
         supporter.saveCreditNoteInPreference(cnRefNo, 1); 
        } else { 
         cb.setChecked(true); 
         docNo = receiptList.get(i).getHhReceipt_docnumber(); 
         supporter.saveReceiptInPreference(docNo, 1); 
        } 

       } 

       orderAdapter.notifyDataSetChanged(); 
       creditNoteAdapter.notifyDataSetChanged(); 
       receiptAdapter.notifyDataSetChanged(); 
      } else { 

       unCheckAll(); 
      } 
     } 
    }); 

所以,任何人都可以幫我出存儲的所有值出現在我的Listvew到 SharedPreference。 任何幫助將不勝感激。

+0

這是更好地保存所有的'SQLite'與名稱和ID值痛。處理起來非常簡單快捷。 –

+0

儘管我會嘗試將它保存在SQLite中,但值並不會來...因爲我只使用了exportItems.getChildCount(),但是我的ListView中只有近40個值出現(所有選中)@MD –

+0

分享您的ListView的適配器代碼,以便我可以幫助您更好。 – Kartheek

回答

0

ListView不適合接收來自用戶的輸入。因爲你必須保存輸入的所有視圖。如果你不這樣做,在滾動後,一切都將被清除。我認爲ScrollView更適合這種情況。

無論如何,如果你想使用ListView,你不能信任視圖。因此,在每次操作之後,您必須填充數據(使用ListView)並將notifyDataSetChanged()調用到ListView刷新本身。

PS 1:你應該認爲ListView只顯示我的視圖,它不能操縱它們。這是關鍵。

PS 2:使用監聽器和TextWatcher捕獲輸入並保存數據。

PS 3:我使用列表視圖與EditTexts和我警告你,它的屁股:)