我有一个对话框片段供用户输入信息。当用户单击确定时,信息通过我尝试将其放入数据库的界面传递回主要活动。这是对话框正面点击代码:
.setPositiveButton("Ok", new DialogInterface.OnclickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
name = edittextname.getText().toString();
details = edittextdetails.getText().toString();
bundle.putString("name", name);
bundle.putString("detail", detail);
mListener.OnAddInfo(Bundle);
在主要活动中,我在代码中实现了接口和这个:
public void OnAddInfo(Bundle bundle){
name = bundle.getString("name");
detail = bundle.getString("detail");
db.open();
long id = db.insertInfo(name, detail);
db.close();
Toast.makeText(this, "Added " + name, Toast.LENGTH_SHORT).show();
}
我知道数据正在传递,因为当我注释掉数据库部分时,吐司正确出现。我认为我的数据库没有问题,因为在其他不使用对话片段的活动中它工作正常。我得到的错误信息是这样的:
FATAL EXCEPTION: main
java.lang.NullPointerException at
android.database.sqlite.SQLiteOpenHelper
.getDatabaseLocked(SQLiteOpenHelper.java:224)
我已经尝试了很多方法来解决这个问题,但无法弄清楚。这只是不允许的事情还是我只是错过了什么?mainactivity也是一个fragmentactivity。