1

タイトルで言ったように、カーソルの値を文字列配列に保存したいと思います。この配列を ArrayAdapter で使用し、setLineAdapter(ArrayAdapter) を呼び出します。これらのコードがありますが、LogCat はarr[i] = crr.getString(i)行に問題があると言っています... 誰か助けてくれますか?

DBAdapter db;
String arr[];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    db = new DBAdapter(this);
    db.open();

    ArrayAdapter<String> AA = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr);

    try {
          Cursor crr = db.getRecord(4);

          crr.moveToFirst();

          for (int i = 0; i <= cr.getCount(); i++){ 
            arr[i] = cr.getString(i);
            crr.moveToNext();
    }}
    catch (IOException e) {e.printStackTrace();}

    setListAdapter(AA);
    db.close();
4

2 に答える 2

1

do-while を使用するようにコードを変更し、ArrayListCursor から動的な値を入力する Array の代わりに使用します。

 ArrayList<String> arrcurval=new ArrayList<String>();
if (crr.moveToFirst()) {
   do {
       arrcurval.add(crr.getString(0)); //<< pass column index here instead of i

     } while (crr.moveToNext());
}
于 2013-01-05T16:22:46.197 に答える
0

したがって、配列を割り当てる必要があります。

      Cursor crr = db.getRecord(4);
      int n = crr.count();
      arr = new int[n];
于 2013-01-05T16:19:13.210 に答える