将静态数据添加到现有listView,其中数据从sqlite填充

时间:2018-02-05 02:11:40

标签: android sqlite listview

我有以下代码将数据从sqlite添加到listView。 (代码工作)但是,我想在listView上有静态数据,并且还具有从sqlite添加的功能。这意味着,我想做一个listView,默认情况下数据为“A”,“B”,“C”。因此,当用户点击“添加”功能时,用户可以将数据添加到sqlite中并显示到“A”,“B”,“C”数据所在的同一列表视图中。 请帮忙。

4 个答案:

答案 0 :(得分:2)

第1步

声明一个空数组列表,然后添加静态数据(如您的情况A,B,C),并使用此数据填充适配器。

ArrayList<String> arrayList=new ArrayList<>();
            arrayList.add("A");
            arrayList.add("B");
            arrayList.add("C");

MyAdapter myAdapter=new MyAdapter(this);
listview.setAdapter(myAdapter);
myAdapter.addItem(arrayList);   

在适配器中添加此功能

public void addItem(ArrayList<String> arraylist){
   this.arraylist = arraylist;
   notifyDataSetChanged();
   }

第2步

在添加项功能中做两件事

1将这些数据添加到数据库中。

2将这些数据添加到您在步骤1中创建的arraylist中,然后像下面的代码一样将其添加到适配器中。

databaseHelper.addData("D");
arrayList.add("D");
myAdapter.addItem(arrayList);

第3步

此后第二次进入屏幕时检查,如果是则检查数据库是否具有数据初始化,然后按如下所示修改步骤

    ArrayList<String> arrayList=new ArrayList<>();
                arrayList.add("A");
                arrayList.add("B");
                arrayList.add("C");

 MyAdapter myAdapter=new MyAdapter(this);
 listview.setAdapter(myAdapter);

if(databaseHelper.getDataList()!=null &databaseHelper.getDataList().size()>0{
    arrayList.addAll(databaseHelper.getDataList());
    myAdapter.addItem(arrayList);
 }else{
    myAdapter.addItem(arrayList);
 }

答案 1 :(得分:0)

您使用imageViewToByte()将ImageView更改为byte,但R.mipmap.newsgd不是ImageView,它是资源

答案 2 :(得分:0)

在listView.setAdapter(adapter)之后添加A,B,C; - &GT; list.add(A),list.add(B),list.add(C)

前:

list.add(new Food(someId, "Singapore","4.772",R.mipmap.newsgd, ...));

希望这有帮助!

答案 3 :(得分:0)

您所做的只是: -

    //get all data
    Cursor cursor = MainActivity.sqLiteHelper.getData("SELECT * FROM FOOD");
    list.clear();
    while (cursor.moveToNext())
    {
        int id = cursor.getInt(0);
        String name = cursor.getString(1);
        String price = cursor.getString(2);
        byte [] image = cursor.getBlob(3);

        list.add(new Food(id,name,price,image));
    }
    // Adding your three items for the list
    list.add(new food(your_id_for_A,your_name_for_A,your_price_for_A,your_image_for_A));
    list.add(new food(your_id_for_B,your_name_for_B,your_price_for_B,your_image_for_B));
    list.add(new food(your_id_for_C,your_name_for_C,your_price_for_C,your_image_for_C));
    adapter.notifyDataSetChanged();

注意您可能必须对您提供的ID以及随后如何处理该ID进行一些小心,因为您可能必须区分数据库中的行而不是添加的行。