【发布时间】:2019-01-04 14:01:35
【问题描述】:
我有两个活动(PrivateContactActivity.java 和 AddContact.java)。 PrivateContactActivity里面有个方法:-
PrivateContactActivity.java
public void databaseLoader() {
privateList.clear();
myDatabase = new MyDatabase(PrivateContactActivity.this);
Cursor cursor = myDatabase.queryData();
StringBuilder stringBuilder = new StringBuilder();
if (cursor.getCount() == 0) {
Toast.makeText(this, "No Contact Found", Toast.LENGTH_SHORT).show();
} else {
while (cursor.moveToNext()) {
String name, phone, email, address;
name = cursor.getString(1);
phone = cursor.getString(2);
email = cursor.getString(3);
address = cursor.getString(4);
PrivateContactModel privateContactModel = new PrivateContactModel(name, phone, email, address);
privateList.add(privateContactModel);
}
}
}
AddContact.java
@Override
public void onBackPressed() {
PrivateContactActivity privateContactActivity = new PrivateContactActivity();
privateContactActivity.databaseLoader();
super.onBackPressed();
}
当我从AddContact 活动中调用此方法时,会显示NullPointerException。为什么会出现这个问题?我经常遇到这种问题。我以另一种方式从某种问题中解决了这个问题,但不知道为什么会出现这个问题。请解释一下。
【问题讨论】:
-
在您的
AddContact活动中,我想您在数据库中添加了一个联系人。您不需要创建PrivateContactActivity的新实例。只需在PrivateContactActivityonCreate()中调用databaseLoader()方法即可 -
AddContact 是一个活动类吗?为什么它会覆盖 onBackPressed
标签: android android-activity android-context