使用來自MainActivity方法我有兩個活動MainActivity
和Additem
我的Android應用程序崩潰,當我在其他活動
我有這樣的方法:
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);
}
它更新的Mainscreen
的tasklist
。
但是當我使用updateUI()
;在Additem
,保存任務它返回,但應用程序崩潰重新啓動自己。
作爲錯誤我得到這個:
引起:顯示java.lang.NullPointerException:嘗試調用虛擬方法 '無效android.widget.ListView.setAdapter(android.widget.ListAdapter)' 上的空對象引用
這是我的代碼,我在ADDITEM使用updateUI():
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
感謝您的意見,我編輯了我的問題:) –
您調用該方法時,您的listView不存在。這是因爲該活動未處於活動狀態並已被回收以節省內存。您不應該從活動外更新UI。 –