データベースメソッドに渡しているContentValuesオブジェクトから値を取得/挿入しようとすると、NullPointerExceptionが発生します。私は私のdbテーブルにいくつかの列を持っており、それらをすべてparamsとしてメソッドに渡すのではなく、少し単純化しようとしています。ContentValuesオブジェクトから値を取得しようとすると、なぜnullになるのですか?
は、ここでは、コードのサンプルです:ここでは、データベースの方法だ
public class MyActivity extends Activity {
private Calendar calendar = Calendar.getInstance();
// other methods in here....
public void onClick(View v) {
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DAY_OF_WEEK);
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
ContentValues values = new ContentValues();
values.put(YEAR, year);
values.put(MONTH, month);
values.put(DATE, date);
values.put(WEEK_OF_YEAR, weekOfYear);
if(everythingIsGood) {
// the problem starts after this.
mDb.addToDatabase(values);
}
}
:
public class Database {
// other methods....
public long addToDatabase(ContentValues values) {
// I'm getting a NullPointerException right here, trying to retrieve
// a value from this ContentValues object
int weekOfYear = values.getAsInteger(WEEK_OF_YEAR);
values.remove(WEEK_OF_YEAR);
// do other stuff
long pId = this.getParentId(weekOfYear);
// And, if I take the above out, right here
values.put(PARENT_ID, pId);
mDb.insert(table_name, null, values);
}
}
だから、私はContentValuesオブジェクトを操作することは許されないのですか?この悪い習慣です、私はすべての変数をメソッドに渡すだけですか?
注:値がnullではないことがわかっています。
ありがとうございます。
この行に 'NullPointerException'がある場合、' values'オブジェクトがnullであることを意味します。あなたが投稿したのは完全な 'onClick'メソッドですか? – Luksprog
私が投稿したのは要約でした。私は前に間違って何をしていたのか分かりません。私は何時間もそれを理解しようとしてきました。 'onClick'メソッドの中で' MyActivity'クラスのメンバ変数にアクセスする方法 – stpx88
コメントの最後の部分は質問ですか? 'onClick'の中のあなたが' MyActivity'のメンバーにアクセスするには、それらを単純に参照するだけです。 – Luksprog