0

特定の列の値を配列に保存したいのですが、初心者なので、これを行う方法がわかりません。私はsqliteから値を取得しています

1
2
123
432
3
5

これらの値を文字列配列に格納したいと思います。これについてグーグルで調べても適切な例が見つからないことを教えてください..事前に感謝します。

public void fun(String query){
    Cursor cursor = db.rawQuery(query, null);

    try{
        String[] arr = new String[cursor.getCount()];
        if(cursor != null){
            while(cursor.moveToNext()){
                for(int i = 0; i < cursor.getCount(); i++){
                    arr[i] = cursor.getString(0).trim();

                }
                cursor.moveToNext();
            }
            cursor.close();
        }

    }finally{
        cursor.close();
    }

}

ここでクエリは

SELECT <COLUMN_NAME> FROM <TABLE_NAME> WHERE <CONDITION>;

私はそれを間違っていると思います私のエラーを修正してください...

4

3 に答える 3

2

使用するrawQueryのは悪い習慣だと思います。これを避けるようにしてください(極端な場合を除く)

問題を解決するには、次の手順を試してください。これが役立つことを願っています。

public ArrayList<String> getAllStringValues() {
    ArrayList<String> yourStringValues = new ArrayList<String>();
    Cursor result = db.query(true, YOUR_TABLE,
            new String[] { YOUR_COLUMN_NAME }, null, null, null, null,
            null, null);

    if (result.moveToFirst()) {
        do {
            yourStringValues.add(result.getString(result
                    .getColumnIndex(YOUR_COLUMN_NAME)));
        } while (result.moveToNext());
    } else {
        return null;
    }
    return yourStringValues;
}

YourCustomDBManagerクラスでこのメソッドを使用します。より良い概念を得るために、Android開発者サイトの例のプログラマーガイドのメモ帳の例を検討してください。SQLite の扱い方を学ぶのに役立ちます。私もAndroidは初めてですが、メモ帳の例からSQLiteについてすべて学びまし

于 2012-07-10T12:02:57.743 に答える
1
int [] val = new int[cursor.getCount()]; // integer array
for(int i= 0; i<cursor.getCount(); i++)
     val[i] = cursor.getInt(cursor.getColumnIndex(COLUMN_NAME));
于 2012-07-10T11:36:08.270 に答える
1
Vector<String> vecInt = new Vector<String>; // you can use any datatype <int><float>

cursor.moveToFirst();
for(i=0;i<cursor.getCount();i++)
{
      vecInt.add(cursor.getString(COLUMN_NUM));// if you are using datatype other then string then need to convert here
}
于 2012-07-10T11:34:28.203 に答える