从ListView到SQLite,SQLite到ListView的项目

时间:2014-02-09 11:15:46

标签: android sqlite listview android-listview

我正在尝试获取listview上的所有项目(我已附加了一些图像uri)并将它们放入数据库中,然后再次获取它们并将它们加载到列表视图中。

我所做的是: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);

以下是将它们放入sqlite之前的项目:(点击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();
    }

问题是,当我尝试将该字符串从sqlite加载到SecondFragment的listview时,它变为如下所示:(单击OnClick of SecondFragment后)

enter image description here

我想要它(在单击OnClick of SecondFragment之后),就像这样:

enter image description here

我怎样才能加载它?

1 个答案:

答案 0 :(得分:1)

我不知道DataHolder,我不知道它是否真的得到了sqlite数据库的支持,但这感觉就像是误用了 - 你可能想要从你的{插入你的每一个项目{1}}作为您表格的单独行。

但是,如果您只想快速解决方法使其正常工作,您可以将您正在阅读的字符串分开,例如:

ListView