java-使用SQLOpenHelper获取ArrayList不起作用

java-使用SQLOpenHelper获取ArrayList不起作用,第1张

概述我的SQLiteOpenHelper类有问题.我有一个与打印机制造商有关的数据库,以及任何类型打印机的详细信息.我尝试使用此代码从数据库中获取所有制造商,并将其返回到arraylist中.//ReaddatabaseforAllprintermanufacturersandreturnalistpublicArrayList<String>getPrManu

我的sqliteOpenHelper类有问题.
我有一个与打印机制造商有关的数据库,以及任何类型打印机的详细信息.
我尝试使用此代码从数据库中获取所有制造商,并将其返回到arrayList中.

// Read database for All printer manufacturers and return a Listpublic ArrayList<String> getPrManufacturer(){    ArrayList<String> manufacturerList = new ArrayList<String>();    sqliteDatabase db = getReadableDatabase();    Cursor cursor = db.query(CoDeskContract.Printer.table_name,                             printerManuProjection, null, null, null, null, null,null);    // If cursor is not null and manufacturer List     // does not contains Manufacturer in the List then add it!    if ((cursor != null) && (cursor.getCount()>0)){        cursor.movetoFirst();        do {            String cursorManufacturer = cursor.getString(0);            //Checking for manufacturer in the List            for(String manufacturerInList:manufacturerList){                if (!manufacturerInList.equals(cursorManufacturer))                    manufacturerList.add(cursorManufacturer);                           }                           }while(cursor.movetoNext());    }    // Return List of manufacturers from database    return manufacturerList;}

我希望每个制造商都在列表中.
我以某种方式无法使其正常工作.
我还是个新手.

谢谢你的帮助.

解决方法:

有两个问题:

>首先,当列表制造商InList为空时,它将不会进入for(String ManufacturerInList:manufacturerList){循环,因此它将永远不会在列表中添加任何条目.
>解决问题1后,它仍然无法正常工作,好像(!manufacturerInList.equals(cursorManufacturer))检查列表中的每个条目并在列表中可能多次添加不匹配的条目.

要解决此问题,您有两种选择.

选项1:用途包含为:

            if (!manufacturerList.contains(cursorManufacturer)) {                 manufacturerList.add(cursorManufacturer);             }

选项2:使用matchFound布尔标志为:

        String cursorManufacturer = cursor.getString(0);        boolean matchFound = false;        //Checking for manufacturer in the List        for(String manufacturerInList:manufacturerList){            if (manufacturerInList.equals(cursorManufacturer)){                 matchFound = true;                 break;            }        }                           if(!matchFound){ // <- doesn't exit in the List            manufacturerList.add(cursorManufacturer);         }
总结

以上是内存溢出为你收集整理的java-使用SQLOpenHelper获取ArrayList不起作用全部内容,希望文章能够帮你解决java-使用SQLOpenHelper获取ArrayList不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1086156.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存