Я использую базу данных SQLite в моем приложении для Android.Когда я выполняю операцию поиска, то случайно обнаруживаю эту ошибку «Приложение не закрывало курсор». Что-то не так с этим кодом?Вот код
field.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
String test = s.toString().trim();
if (test.isEmpty()) {
if (myCursor != null)
myCursor.close();
myCursor = getReceipts1Data(orderTypes);
myAdapter = new CustomCursorAdapter(activity, myCursor, CursorAdapter.NO_SELECTION);
lView.setAdapter(myAdapter);
}
}
});
public Cursor getReceipts1Data(Global.OrderType[] orderTypes)
{
String subquery1 = "SELECT ord_id as _id,ord_total,ord_issync,cust_id,isVoid,ord_type" +
" FROM Orders WHERE ord_type IN (";
String subquery2 = ") AND isOnHold = '0' ORDER BY rowid DESC";
Cursor cursor = DBManager.getDatabase().rawQuery(subquery1 + getOrderTypesAsSQLArray(orderTypes) + subquery2, null);
cursor.moveToFirst();
return cursor;
}