Je zegt dat je veel vragen online hebt bekeken, maar je hebt zeker niet naar dit of dit gekeken. Het duurde letterlijk 5 minuten zoeken.
Hoe dan ook, als ik jou was, zou ik om dit probleem op te lossen een finally
. toevoegen clausule bij het sluiten van de verbinding. Dit betekent dat u uw databasehelper zou declareren als een statische instantievariabele en het Abstract Factory-patroon zou gebruiken om de singleton-eigenschap te garanderen.
Uw waarschuwing wordt gegeven omdat u er niet voor zorgt dat slechts één DatabaseHelper
zal ooit op een bepaald moment bestaan. Als de mInstance
object niet is geïnitialiseerd, wordt er een gemaakt. Als er al een is gemaakt, wordt deze gewoon teruggestuurd.
Hier is de code:
public ArrayList<ItemSubject> loadDataSubject() {
ArrayList<ItemSubject> arrayList = new ArrayList<>();
String select = "select * from " + TABLE_SUBJECT;
Cursor cursor = getData(select);
if (cursor != null && cursor.getCount() > 0) {
try {
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
String id = cursor.getString(cursor.getColumnIndex(TAG_ID));
String course = cursor.getString(cursor.getColumnIndex(TAG_COURSE_NAME));
....
ItemSubject objItem = new ItemSubject(id, courseId,...);
arrayList.add(objItem);
cursor.moveToNext();
}
finally {
if (cursor != null)
cursor.close();
}
}
return arrayList;
}
Maar aangezien u zegt dat mijn enige bijdrage aan uw vraag (die al in andere berichten was beantwoord) is dat u uw gebrek aan elementair Engels verfijnt, weet ik niet zeker of u dit als een adequaat antwoord kunt accepteren.