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

标签 java android sqliteopenhelper

我的 SQLiteOpenHelper 类有问题。 我有一个包含打印机制造商和任何类型打印机详细信息的数据库。 我尝试使用此代码从我的数据库中获取所有制造商,并将它们返回到数组列表中。

// Read database for All printer manufacturers and return a list
public 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;
}

我希望每个制造商都出现在列表中。 不知何故我无法让它工作。 我还是个新手。

感谢您的帮助。

最佳答案

您还可以在 SQLite (http://www.sqlite.org/lang_select.html) 中使用 distinct 关键字。为此使用 SQLiteDatabase.rawQuery(String query, String[] args)。

db.rawQuery("SELECT DISTINCT name FROM "+ CoDeskContract.Printer.TABLE_NAME,null);

关于java - 使用 SQLOpenHelper 获取 ArrayList 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709493/

相关文章:

java - 小程序 java.io.FilePermission 异常

java - 使用 Spring MVC 的 JAXB 注释

java - 无法将 Java 堆大小设置为大于 1568

java - Admob 6.4.1 - 膨胀类 com.google.ads.AdView 时出错

Android HoneyComb - 请求已经关闭的游标

java - 调用类方法时出现 java.lang.NullPointerException 错误

android - jar 中的 apklib 有什么优势?

android - 如何捕获 Android Firebase signUpWithEmailAndPassword 错误代码?

java - 来自 CursorWindow 的 java.lang.IllegalStateException : Couldn't read row 0, col -1