2012-03-03 18 views
0

私はあらゆることを試みてきましたが、まだ解決策を見つけられていませんでした。 closeメソッドを使用していても、カーソルはまだ閉じていないようです。これは私をイライラしています。どんな助けでも大歓迎です。ここに私のコードは、あなたはまた、データベースを閉じていない、また、このアンドロイドでカーソルが閉じないのはなぜですか?

db.close(); 
c.close(); 
helper.close(); 

を試してみてください

curs(); 
if(!isClosed()){ 
    c.close(); 
    } 
helper.close(); 
db.close(); 
+0

あなたはデータベースを閉じる必要があります。 'helper.close()'の後に 'db.close()'を追加してください。 – debracey

答えて

1

ですが、私はすることができます示唆しますローカル変数として 'Cursor'を宣言するあなたのメソッド 'curs'に引数として渡します

0

に変更

curs(); 
c.close(); 
helper.close(); 

public class Order extends Activity{  

DatabaseHelper helper; 
Cursor c; 
SQLiteDatabase db; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.order); 
    String columns[] = {"_id", "Name", "Price"}; 
    helper = new DatabaseHelper(this); 
    db=helper.getWritableDatabase(); 
    c=db.query("lite", columns, null, null, null, null, null); 
c.moveToFirst(); 
curs(); 
c.close(); 
helper.close(); 
} 
public void curs() 
{ 

String r = ""; 
    while(!c.isAfterLast()) 
    { 
     r=r + c.getString(c.getColumnIndex("_id")) + " "+c.getString(c.getColumnIndex("Name"))+" "+c.getString(c.getColumnIndex("Price")); 
     c.moveToNext(); 
    } 
} 
関連する問題