ユーザーが情報を入力するために使用するダイアログフラグメントがあります。ユーザーが[OK]をクリックすると、情報はインターフェイスを介してメインアクティビティに戻され、データベースに入れようとします。これはダイアログのポジティブクリックコードです:
.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();
}
dbパーツをコメントアウトすると、トーストが正しく表示されるため、データが渡されていることがわかります。ダイアログフラグメントを使用しない他のアクティビティでは正常に機能するため、データベースに問題はないと思います。私が得るエラーメッセージはこれです:
FATAL EXCEPTION: main
java.lang.NullPointerException at
android.database.sqlite.SQLiteOpenHelper
.getDatabaseLocked(SQLiteOpenHelper.java:224)
私はこれを修正するために多くのことを試みましたが、それを理解することはできません。これは許可されていないものですか、それとも私は何かを見逃しているだけですか?主な活動は断片的な活動でもあります。