从Long转换为String []

时间:2012-12-20 16:12:01

标签: android sqlite type-conversion

我收到了这个错误:

The method query(String, String[], String, String[], String, String, String) in the type SQLiteDatabase is not applicable for the arguments (String, String[], String, String, null, null, null)

和负责的代码:

public Cursor getDomanda(String id) {
            List<categorie> categorie = new ArrayList<categorie>();

            Cursor cursor = database.query(MySQLiteHelper.TABLE_SONDAGGI,
                allCategorieColumns, MySQLiteHelper.COLUMN_ID + "=", id, null, null, null);

            cursor.moveToFirst();
            while (!cursor.isAfterLast()) {
              categorie categoria = cursorToCategorie(cursor);
              categorie.add(categoria);
              cursor.moveToNext();
            }
            // Make sure to close the cursor
           // cursor.close();
            return cursor;
          }

另一方面:

long strcategory = getIntent().getExtras().getLong("categoriaId"); 
Cursor values = datasource.getDomanda(Long.toString(strcategory));

我做错了什么? 我需要将长度转换为String[],但是它是String[]?:D 顺便说一句......查询对吗? 我的意思是

database.query(MySQLiteHelper.TABLE_SONDAGGI,
                    allCategorieColumns, MySQLiteHelper.COLUMN_ID + "=", id, null, null, null);

select from tableSondaggi where _id = $id ?

2 个答案:

答案 0 :(得分:2)

第4个参数必须是String[],而不是String

您需要将id替换为new String[] { id },以创建一个由单个元素(您的ID)组成的数组。

  Cursor cursor = database.query(MySQLiteHelper.TABLE_SONDAGGI,
            allCategorieColumns, MySQLiteHelper.COLUMN_ID + "=", new String[] { id }, null, null, null);

答案 1 :(得分:1)

这应该可以解决问题。

Cursor cursor = database.query(MySQLiteHelper.TABLE_SONDAGGI,
            allCategorieColumns, MySQLiteHelper.COLUMN_ID + "=",  new String[] { id }, null, null, null);

但是:也许有必要阅读一些关于基本编程的书籍。数组(例如String[])非常有用......