0
作業中のプロジェクトがありましたが、今はレイアウトをアップグレードしたいと思いますが、フラグメント(前ハニカム)を追加しようとしています。私のDB、と私はNullPointerException
を取得しています:プロジェクトにフラグメントを追加した後のgetWritableDatabaseでNullPointerExceptionが発生しました
ERROR/AndroidRuntime(27294):
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
ERROR/AndroidRuntime(27294):
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
私はそれは私がデータベースのコンストラクタに送るよコンテキストとは何かを持っていると信じています。ここ
は私のクラスである:
public class ShowFragment extends ListFragment {
ArrayList<String> results = new ArrayList<String>();
private SQLiteDatabase db;
WorkTrackdb workdb = new WorkTrackdb(getActivity());
private ViewGroup mRootView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor c = getYears();
//some code here
}
Cursor getYears() {
db = workdb.getReadableDatabase();
String years[] = {"year"};
Cursor cursor = db.query(WorkTrackdb.TABLE_NAME, years, null,
null, null, null,"year DESC");
return cursor;
}
内
instantiate WorkTrackdb workdb = new WorkTrackdb(getActivity());
する必要がわからないは、それが働いたありがとう!私がしなければならなかったのは、OnCreate()の中でWorkTrackdbをインスタンス化することです。なぜ私がフラグメントに移動する前にOnCreate()の外で働くのか不思議です。 – idanakav
アクティビティを開始する必要があるためです。その時点であなたは活動を止めるが、インスタンス化します。アクティビティを作成して渡す必要があります。 –