У меня есть два вида деятельности MainActivity
и Additem
Мои Android сбой приложения, когда я использую метод из MainActivity в другой деятельности
в MainActivity У меня есть этот метод:
public void updateUI() {
helper = new TaskDBHelper(MainActivity.this);
SQLiteDatabase sqlDB = helper.getReadableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
null,null,null,null,null);
listAdapter = new SimpleCursorAdapter(
this,
R.layout.task_view,
cursor,
new String[] { TaskContract.Columns.TASK},
new int[] { R.id.taskTextView},
0
);
ListView listView = (ListView)findViewById(R.id.list);
listView.setAdapter(listAdapter);
}
Он обновляет tasklist
на Mainscreen
.
Но когда я использую updateUI()
; в Additem
, при сохранении задачи возвращается, но приложение аварийно завершает работу.
Как ошибки я получил это:
Вызванные: java.lang.NullPointerException: Попытка вызвать виртуальный метод 'недействительный android.widget.ListView.setAdapter (android.widget.ListAdapter)' на нуле ссылка на объект
Это мой код, где я использую updateUI() в AddItem:
public void saveItem(View view){
EditText editText = (EditText)findViewById(R.id.editText);
String task = editText.getText().toString();
Log.d("Additem", task);
helper = new TaskDBHelper(Additem.this);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.clear();
values.put(TaskContract.Columns.TASK, task);
db.insertWithOnConflict(TaskContract.TABLE, null, values,
SQLiteDatabase.CONFLICT_IGNORE);
updateUI();
finish();
}
Может кто-нибудь помочь мне с этой проблемой?
Спасибо заранее,
С наилучшими пожеланиями, Селин
пожалуйста опубликовать журнал (или проверить, что и вы будете знать ..) из авария, так что можно узнать, что вызывает ее и почему – user2450263
Спасибо за советы, я отредактировал мой вопрос :) –
Ваш списокView не существует в тот момент, когда вы вызываете метод. Это связано с тем, что активность неактивна и переработана для сохранения памяти. Вы никогда не должны обновлять пользовательский интерфейс из-за активности. –