Я думаю, что это легко, но я новичок в создании классов в Java. Я работаю в студии Android и у меня есть класс, который я включил в код ниже. Функция в классе просто пытается выполнить запрос к базе данных sqlite, но я получаю следующую ошибку.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference
Я думаю, это связано с неправильным объявлением объекта sqLiteDatabase. Может кто-нибудь помочь объяснить, как и где исправить эту проблему?
package com.example.zzzzz;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class clsSqliteHandler {
//SQLiteDatabase sqLiteDatabase;
SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase("wildlife_db", MODE_PRIVATE,null);
public clsSqliteHandler() {
}
public Cursor getCursor(String strTable, String strColsToReturn, String strSelectionWhere, String strSelectionArgs){
String strTableName = strTable;
String[] strColumnsToReturn = { strColsToReturn };
String strSelectWhere = strSelectionWhere ;
String[] strSelectArgs = { strSelectionArgs };
Cursor csrResult = sqLiteDatabase.query(strTableName, strColumnsToReturn, strSelectWhere, strSelectArgs, null, null, null);
return csrResult;
}
}
вот как я вызываю метод класса из своей деятельности ...
Cursor myCursor = mySqliteHandler.getCursor("fact_sightings", "animal_common_name", "province_name", "Western Cape");