私はAndroidアプリケーションを作成しており、JSiteをSQLiteデータベースに保存する必要があります。 アプリにはすでにJSONを取得し、これをlistviewに表示する機能と、データをデータベースに保存する機能があります。今私はそれらを組み合わせたいが、私は少し失われている。JSiteをSQLiteに保存
public void get_data(String data) {
try {
JSONArray data_array=new JSONArray(data);
for (int i = 0 ; i < data_array.length() ; i++)
{
JSONObject obj=new JSONObject(data_array.get(i).toString());
Courses add=new Courses();
add.name = obj.getString("name");
add.ects = obj.getString("ects");
add.grade = obj.getString("grade");
add.period = obj.getString("period");
courses.add(add);
}
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
これはJSONをループするので、これはデータベースに保存する必要があります。
public boolean insertCourse(String course, int ects, int period, int grade) {
SQLiteDatabase db = getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COURSE_COLUMN_COURSE, course);
contentValues.put(COURSE_COLUMN_ECTS, ects);
contentValues.put(COURSE_COLUMN_PERIOD, period);
contentValues.put(COURSE_COLUMN_GRADE, grade);
db.insert(COURSE_TABLE_NAME, null, contentValues);
return true;
}
これはDBHelper.classにありますが、これは私が思うに使用できるはずです。
私は入力フィールドをデータベースに保存するために使用したコードを再利用したいと考えていましたが、これまでのところ運がありませんでした。
else {
if(dbHelper.insertCourse(courseEditText.getText().toString(),
Integer.parseInt(ectsEditText.getText().toString()),
Integer.parseInt(periodEditText.getText().toString()),
Integer.parseInt(gradeEditText.getText().toString()))) {
Toast.makeText(getApplicationContext(), "Course Inserted", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplicationContext(), "Could not Insert course", Toast.LENGTH_SHORT).show();
}
誰もが、可能な限り、両方を統合する方法を提案していますか?事前に のthnx
EDIT: logcatのクラッシュレポート:
04-09 17:45:37.204 12244-12244/com.stefspakman.progress2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.stefspakman.progress2, PID: 12244
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.stefspakman.progress2.ProgressDBHelper.insertCourse(java.lang.String, int, int, int)' on a null object reference
at com.stefspakman.progress2.gradingActivity.get_data(gradingActivity.java:60)
at com.stefspakman.progress2.Download_data$1.handleMessage(Download_data.java:58)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
JSONからデータを抽出するときに 'insertCourse'メソッドを呼び出します。 –
@PrerakSola私は 'String dbCourse = obj.getString(" name ");を試しました。 int dbects = Integer.parseInt(obj.getString( "ects")); int dbperiod = Integer.parseInt(obj.getString( "period")); int dbgrade = Integer.parseInt(obj.getString( "grade")); dbHelper.insertCourse(dbCourse、dbects、dbperiod、dbgrade); 'が、アクティビティを開くとすぐにアプリケーションがクラッシュします。 –
あなたの質問にクラッシュのlogcatを投稿してください。 –