Android 向从sqlite填充数据的现有listView添加静态数据

Android 向从sqlite填充数据的现有listView添加静态数据,android,sqlite,listview,Android,Sqlite,Listview,我有以下代码将数据从sqlite添加到listView。(代码可以工作)但是,我希望在listView上有静态数据,并且还有从sqlite添加数据的功能。也就是说,我想使用数据“a”、“B”、“C”作为默认值来创建一个listView。因此,当用户单击“添加”函数时,用户可以将数据添加到sqlite中,并显示在“A”、“B”、“C”数据所在的同一个listView中。 请提供帮助。您使用imageViewToByte()将ImageView更改为字节,但R.mipmap.newsgd不是Imag

我有以下代码将数据从sqlite添加到listView。(代码可以工作)但是,我希望在listView上有静态数据,并且还有从sqlite添加数据的功能。也就是说,我想使用数据“a”、“B”、“C”作为默认值来创建一个listView。因此,当用户单击“添加”函数时,用户可以将数据添加到sqlite中,并显示在“A”、“B”、“C”数据所在的同一个listView中。
请提供帮助。

您使用
imageViewToByte()
将ImageView更改为字节,但R.mipmap.newsgd不是ImageView,it资源您使用
imageViewToByte()
将ImageView更改为字节,但R.mipmap.newsgd不是ImageView,it资源只需在listView.setAdapter(适配器)之后添加A、B、C即可;->列表。添加(A),列表。添加(B),列表。添加(C)

例:


希望这有帮助

只需在listView之后添加A、B、C。setAdapter(适配器);->列表。添加(A),列表。添加(B),列表。添加(C)

例:

希望这有帮助

你要做的就是:-

    //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稍微小心一点,因为您可能需要区分数据库中的行与添加的行。

您所做的只是:-

    //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稍微小心一点,因为您可能需要区分数据库中的行与添加的行。

步骤1

声明一个空的arraylist,然后添加静态数据,如案例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);   
步骤3

当您第二次进入屏幕时,请在此之后进行检查,检查数据库是否具有data init,如果是,则修改步骤1,如下所示

    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);
 }
ArrayList ArrayList=new ArrayList();
arrayList.添加(“A”);
arrayList.添加(“B”);
arrayList.添加(“C”);
MyAdapter MyAdapter=新的MyAdapter(此);
setAdapter(myAdapter);
if(databaseHelper.getDataList()!=null&databaseHelper.getDataList().size()>0{
addAll(databaseHelper.getDataList());
myAdapter.addItem(arrayList);
}否则{
myAdapter.addItem(arrayList);
}

步骤1

声明一个空的arraylist,然后添加静态数据,如案例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);   
步骤3

当您第二次进入屏幕时,请在此之后进行检查,检查数据库是否具有data init,如果是,则修改步骤1,如下所示

    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);
 }
ArrayList ArrayList=new ArrayList();
arrayList.添加(“A”);
arrayList.添加(“B”);
arrayList.添加(“C”);
MyAdapter MyAdapter=新的MyAdapter(此);
setAdapter(myAdapter);
if(databaseHelper.getDataList()!=null&databaseHelper.getDataList().size()>0{
addAll(databaseHelper.getDataList());
myAdapter.addItem(arrayList);
}否则{
myAdapter.addItem(arrayList);
}

要为listview添加默认值吗?只需在listview.setAdapter(adapter);->list.add(A),list.add(B),list.add(C)@naghtmaregiba list.add(“Singapore”,“4.772”,R.mipmap.newsgd);这是我要添加的数据,但我有一个错误,无法解析方法add(java.lang.String,java.lang.String,int)请帮助,谢谢。您的意思是前3行的数据类型与其他行不同?数据类型是否相同?是否要为listview添加默认值?只需在listview.setAdapter(adapter);->list.add(A),list.add(B),list.add(C)@Dreammaregiba list.add(“Singapore”,“4.772”,R.mipmap.newsgd);这是我要添加的数据,但我有一个错误,无法解析方法'add(java.lang.String,java.lang.String,int)请帮助谢谢您您的意思是前3行的数据类型与其他行不同?是相同的数据类型抱歉,当我添加:“list.add(new Food(50,“Singapore”,“4.772”,R.mipmap.newsgd)”它仍然有错误错误仍然落在数据类型上。请建议我如何做。谢谢you@awa这是一个完全不同的问题。我相信
list.add(新食品(-10,“Singapore”,“4.772”,new byte[]{0});
会起作用。对不起,当我添加:“list.add(新食品(50,“Singapore”,“4.772”,R.mipmap.newsgd));”它仍然有错误错误仍然落在数据类型上。请建议我如何做。谢谢you@awa这是一个完全不同的问题。我相信
list.add(新食物(-10,“Singapore”,“4.772”,新字节[]{0});
会起作用。