4

エラーが発生していますが、解決策が見つからないようです。私のアプリケーションは ICS 4.0.3 で動作していますが、Android 3.2 でエラーを返します。私のMainActivity.javaファイルのコードは次のとおりです。

SQLiteDatabase db = databaseHelper.getReadableDatabase();
         Cursor cursor = db.query(DatabaseHelper.TABLE_NAME, new String[]{"_id","isim","icerik"}, null, null, null, null, null);
         startManagingCursor(cursor);
         tts=0;



         while(cursor.moveToNext()){
            if(tts==0)
             {            
            array_spinner=new String[cursor.getCount()+1];
            array_spinner[tts]= "FAVORİ";
             }
            array_spinner2[tts+1]= cursor.getString((cursor.getColumnIndex("isim")));
            array_spinner3[tts+1]= cursor.getString((cursor.getColumnIndex("icerik")));
             tts++;
            } 

         ss2 = (Spinner) findViewById(R.id.spinner2);
         ArrayAdapter<Object> adapter  = new ArrayAdapter<Object>(this,R.layout.row2, R.id.weekofday2, array_spinner2);
            ss2.setAdapter(adapter);
        } catch (Exception e) {}

この問題を解決する方法について何か提案はありますか?

4

3 に答える 3

11

どこかで、Cursor渡している を閉じていますstartManagingCursor()stopManagingCursor()を閉じる前に呼び出しCursorます。

startManagingCursor()非推奨であることに注意してください。それを使用する代わりに、データが変更されたときに、別のクエリをバックグラウンドで実行します (例: AsyncTaskCursorLoader)。

また、手動ですべてのデータをオブジェクトに変換しCursorAdapterて.SimpleCursorAdapterArrayAdapter

また、 を使用する場合ArrayAdapterは、より具体的なクラスで宣言してください (例: ArrayAdapter<String>、not ArrayAdapter<Object>.

于 2012-06-23T16:27:24.473 に答える
1

このエラーは、廃止されたメソッドの不正確な使用が原因のようです

startManagingCursor()

stopManagingCursor()非常にまれであるため、適切に呼び出されれば問題が解決することを 100% 確信することはできません。

使用を避け、CursorLoader と LoaderManager を使用することをお勧めします。

于 2015-07-23T11:18:43.947 に答える