Attempt to invoke virtual method 'void android.widget.CursorAdapter.changeCursor(android.database.Cursor)' on a null object reference
есть класс
public class ExampleReciver extends BroadcastReceiver {
SQLiteDatabase db;
DatabaseHelper databaseHelper;
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
AlarmManagerBroadcastReceiver BR = new AlarmManagerBroadcastReceiver();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
db.delete(DatabaseHelper.TABLE2, "Date1 = ?", new String[]{String.valueOf(BR.calendar())});
Cursor updatedCursor = db.query(TABLE2, null, null, null, null, null, null);
BR.names(context);
AlarmManagerActivity AM = new AlarmManagerActivity();
AM.updateListView(context);
// throw new UnsupportedOperationException("Not yet implemented");
}
}
при попытке вызова метода из активити
public class AlarmManagerActivity extends Activity {
private static String CHANNEL_ID = "Cat channel";
private static final int CM_DELETE_ID = 1;
int den;
SharedPreferences sPref;
SimpleCursorAdapter scAdapter1;
ListView lvData2;
private AlarmManagerBroadcastReceiver alarm;
SQLiteDatabase db;
Cursor userCursor;
DatabaseHelper databaseHelper;
boolean iteM;
final String SAVED_TEXT = "saved_text";
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
alarm = new AlarmManagerBroadcastReceiver();
Context context = this.getApplicationContext();
databaseHelper = new DatabaseHelper(context);
// создаем базу данных
databaseHelper.create_db();
db = databaseHelper.open();
lvData2 = (ListView) findViewById(R.id.lv);
loadText();
userCursor = db.query(TABLE2, null, null, null, null, null, null);
String[] from1 = new String[] {DatabaseHelper.COLUMN_YEAR2, DatabaseHelper.COLUMN_NAME2};
int[] to1 = new int[] { R.id.tvData,R.id.tvName};
scAdapter1 = new SimpleCursorAdapter(this, R.layout.item, userCursor, from1, to1,2);
lvData2.setAdapter(scAdapter1);
// добавляем контекстное меню к списку
registerForContextMenu(lvData2);
}
protected void updateListView(Context context){
Cursor cursor = db.query(TABLE2, null, null, null, null, null, null);
scAdapter1.changeCursor(cursor);
}
выходит ошибка
ava.lang.RuntimeException: Unable to start receiver com.example.androidalarmmanager.ExampleReciver: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.CursorAdapter.changeCursor(android.database.Cursor)' on a null object reference
at android.app.ActivityThread.handleReceiver(ActivityThread.java:3018)
at android.app.ActivityThread.-wrap18(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1544)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.CursorAdapter.changeCursor(android.database.Cursor)' on a null object reference
at com.example.androidalarmmanager.AlarmManagerActivity.updateListView(AlarmManagerActivity.java:86)
at com.example.androidalarmmanager.ExampleReciver.onReceive(ExampleReciver.java:31)
не могу понять почему?