2014-02-09 86 views
0

我試圖讓我的列表視圖(我已附加了一些圖像uri)的所有項目,並將它們放在數據庫中,然後再次獲取它們並將它們加載到列表視圖。從ListView到SQLite,SQLite到ListView的項目

我所做的是:String hex = array_list.toString();並將該十六進制字符串放入數據庫(sqlite)中。

FirstFragment:

ListView lv;  
ArrayList<Uri> array_list = new ArrayList<Uri>(); 
ArrayAdapter<Uri> array_adapter; 

OnCreate.. 

array_adapter = new ArrayAdapter<Uri>(getActivity(), android.R.layout.simple_list_item_1, array_list); 
lv = (ListView) v.findViewById(R.id.list); 
lv.setAdapter(array_adapter); 


OnClick.. 

String hex = array_list.toString(); 

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

rcfData.put("dateTime", hex); 

DataHolder dataHolder = new DataHolder(getActivity()); 
dataHolder.insertData(rcfData); 

這裏是項目之前,我把它們放在源碼:(點擊的OnClick之前)

enter image description here

SecondFragment:

ListView lv2; 
ArrayList<Uri> array_list2 = new ArrayList<Uri>(); 
ArrayAdapter<Uri> array_adapter2; 

OnCreate... 

array_adapter2 = new ArrayAdapter<Uri>(getActivity(), android.R.layout.simple_list_item_1, array_list2); 
lv2 = (ListView) v.findViewById(R.id.list2); 
lv2.setAdapter(array_adapter2); 

OnClick... 

Intent intent = getActivity().getIntent(); 
String rcfDataId = intent.getStringExtra("unique_id"); 
DataHolder dataHolder = new DataHolder(getActivity()); 
HashMap<String, String> rcfData = dataHolder.get_rcfData(rcfDataId); 

    if(rcfData.size() !=0) { 

     String s = rcfData.get("dateTime"); 
     Uri hello = Uri.parse(s); 

     array_list2.add(hello); 
     array_adapter2.notifyDataSetChanged(); 
    } 

問題是,當我嘗試加載從源碼到SecondFragment的列表視圖該字符串,它成了這個樣子:

enter image description here

(點擊SecondFragment的OnClick後),我希望它像什麼(點擊SecondFragment的的OnClick)後,是這樣的:

enter image description here

我怎樣才能加載它這樣呢?

回答

1

我不知道DataHolder,我不知道是否它是由一個SQLite數據庫真的支持,但這種感覺就像一個誤用 - 你可能會想從您ListView作爲一個單獨插入您的每個項目排到你的桌子。

不過,如果你只是想快速的解決方法,使其工作,你可以只拆你正在閱讀的字符串,e.g:

if(rcfData.size() !=0) { 

    String s = rcfData.get("dateTime"); 
    // Remove brackets 
    s = s.substring(1, s.length() - 1); 
    // Split string and insert to ListView 
    for(String sPart : s.split(", ")) { 
     Uri hello = Uri.parse(sPart); 
     array_list2.add(hello); 
    } 
    array_adapter2.notifyDataSetChanged(); 
} 
+0

太感謝你了!先生。問題解決了。謝謝你!並再次感謝!呵呵 :) – luwionline