質問編集履歴

4

タイトルを更新しました。

2017/02/05 16:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- DBから取得してきた値がnullに
1
+ DataAccessから値が受け取れ
test CHANGED
File without changes

3

更新しました

2017/02/05 16:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- on a null object reference エラーが出
1
+ DBから取得してきた値がnullにな
test CHANGED
File without changes

2

コードの追加です

2017/02/05 15:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -52,36 +52,8 @@
52
52
 
53
53
  at android.app.Activity.performCreate(Activity.java:5933)
54
54
 
55
- at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
56
-
57
- at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
58
-
59
- at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2412) 
60
-
61
- at android.app.ActivityThread.access$800(ActivityThread.java:149) 
62
-
63
- at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326) 
64
-
65
- at android.os.Handler.dispatchMessage(Handler.java:102) 
66
-
67
- at android.os.Looper.loop(Looper.java:211) 
68
-
69
- at android.app.ActivityThread.main(ActivityThread.java:5335) 
70
-
71
- at java.lang.reflect.Method.invoke(Native Method) 
72
-
73
- at java.lang.reflect.Method.invoke(Method.java:372) 
74
-
75
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016) 
76
-
77
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 
78
-
79
55
  ```
80
56
 
81
-
82
-
83
-
84
-
85
57
  ###実際コンソールのログにあった.javaファイルのソースコード
86
58
 
87
59
  ```java
@@ -260,150 +232,232 @@
260
232
 
261
233
  ```
262
234
 
235
+
236
+
263
237
  ```java
264
238
 
265
- Temp.java
239
+ DataAccess.java
266
-
267
-
268
240
 
269
241
  package android.TempleList;
270
242
 
271
243
 
272
244
 
273
- public class Temp {
274
-
275
- private int _id;
276
-
277
- private String _name;
278
-
279
- private String _honzon;
280
-
281
- private String _shushi;
282
-
283
- private String _address;
284
-
285
- private String _url;
286
-
287
- private String _note;
288
-
289
-
290
-
291
- //アクセサメソッド
292
-
293
-
294
-
295
- public int getid() {
296
-
297
- return _id;
245
+ import android.content.Context;
246
+
247
+ import android.database.Cursor;
248
+
249
+ import android.database.sqlite.SQLiteDatabase;
250
+
251
+ import android.database.sqlite.SQLiteStatement;
252
+
253
+ import android.util.Log;
254
+
255
+
256
+
257
+ /**
258
+
259
+ * データベース上のデータを処理
260
+
261
+ */
262
+
263
+ public class DataAccess {
264
+
265
+ public static Temp findByPK(Context context, int id) {
266
+
267
+ DatabaseHelper helper = new DatabaseHelper(context);
268
+
269
+ SQLiteDatabase db = helper.getWritableDatabase();
270
+
271
+ Cursor cursor = null;
272
+
273
+ Temp result = null;
274
+
275
+ String sql = "SELECT _id, name, honzon, shushi, address, url, note from temples WHERE _id = " +id;
276
+
277
+
278
+
279
+ System.out.println(sql);
280
+
281
+
282
+
283
+ try{
284
+
285
+ cursor = db.rawQuery(sql, null);
286
+
287
+ while(cursor != null && cursor.moveToNext()) {
288
+
289
+ int idxname = cursor.getColumnIndex("name");
290
+
291
+ int idxhonzon = cursor.getColumnIndex("honzon");
292
+
293
+ int idxshushi = cursor.getColumnIndex("shushi");
294
+
295
+ int idxaddress = cursor.getColumnIndex("address");
296
+
297
+ int idxurl = cursor.getColumnIndex("url");
298
+
299
+ int idxnote = cursor.getColumnIndex("note");
300
+
301
+
302
+
303
+ String name = cursor.getString(idxname);
304
+
305
+ String honzon = cursor.getString(idxhonzon);
306
+
307
+ String shushi = cursor.getString(idxshushi);
308
+
309
+ String address = cursor.getString(idxaddress);
310
+
311
+ String url = cursor.getString(idxurl);
312
+
313
+ String note = cursor.getString(idxnote);
314
+
315
+
316
+
317
+ result = new Temp();
318
+
319
+ result.setId(id);
320
+
321
+ result.setName(name);
322
+
323
+ result.sethonzon(honzon);
324
+
325
+ result.setshushi(shushi);
326
+
327
+ result.setaddress(address);
328
+
329
+ result.seturl(url);
330
+
331
+ result.setnote(note);
332
+
333
+ }
334
+
335
+ }
336
+
337
+ catch (Exception ex) {
338
+
339
+ Log.e("ERROR", ex.toString());
340
+
341
+ }
342
+
343
+ finally {
344
+
345
+ db.close();
346
+
347
+ }
348
+
349
+ return result;
298
350
 
299
351
  }
300
352
 
353
+
354
+
355
+ /**
356
+
357
+ * メモ情報を更新するメソッド
358
+
359
+ */
360
+
361
+ public static void update(Context context, int id, String name, String honzon, String shushi, String address, String url, String note) {
362
+
363
+ DatabaseHelper helper = new DatabaseHelper(context);
364
+
365
+ SQLiteDatabase db = helper.getWritableDatabase();
366
+
367
+
368
+
369
+ String sql = "UPDATE temples SET name = ?, honzon = ?, shushi = ?, address = ?, url = ?, note = ?, WHERE _id = ?";
370
+
371
+ try{
372
+
373
+ SQLiteStatement stmt = db.compileStatement(sql);
374
+
375
+ stmt.bindString(1, name);
376
+
377
+ stmt.bindString(2, honzon);
378
+
379
+ stmt.bindString(3, shushi);
380
+
381
+ stmt.bindString(4, address);
382
+
383
+ stmt.bindString(5, url);
384
+
385
+ stmt.bindString(6, note);
386
+
387
+ stmt.bindLong(7, id);
388
+
389
+
390
+
391
+ stmt.executeInsert();
392
+
393
+ }
394
+
301
- public void setId(int id) {
395
+ catch (Exception ex) {
396
+
302
-
397
+ Log.e("ERROR", ex.toString());
398
+
399
+ }
400
+
303
- _id = id;
401
+ finally {
402
+
304
-
403
+ db.close();
404
+
305
-
405
+ }
306
406
 
307
407
  }
308
408
 
409
+ /**
410
+
411
+ * メモ情報を新規登録するメソッド
412
+
413
+ */
414
+
415
+ public static void insert(Context context, String name, String honzon, String shushi, String address, String url, String note) {
416
+
417
+ DatabaseHelper helper = new DatabaseHelper(context);
418
+
419
+ SQLiteDatabase db = helper.getWritableDatabase();
420
+
421
+
422
+
423
+ String sql = "INSERT INTO temples (name, honzon, shushi, address, url, note) VALUES (?, ?, ?, ?, ?, ?)";
424
+
425
+ try{
426
+
427
+ SQLiteStatement stmt = db.compileStatement(sql);
428
+
309
- public String getName() {
429
+ stmt.bindString(1, name);
430
+
310
-
431
+ stmt.bindString(2, honzon);
432
+
433
+ stmt.bindString(3, shushi);
434
+
435
+ stmt.bindString(4, address);
436
+
437
+ stmt.bindString(5, url);
438
+
311
- return _name;
439
+ stmt.bindString(6, note);
440
+
441
+
442
+
312
-
443
+ stmt.executeInsert();
444
+
313
-
445
+ }
446
+
447
+ catch (Exception ex) {
448
+
449
+ Log.e("ERROR", ex.toString());
450
+
451
+ }
452
+
453
+ finally {
454
+
455
+ db.close();
456
+
457
+ }
314
458
 
315
459
  }
316
460
 
317
- public void setName(String name) {
318
-
319
- _name = name;
320
-
321
-
322
-
323
- }
324
-
325
- public String gethonzon() {
326
-
327
- return _honzon;
328
-
329
-
330
-
331
- }
332
-
333
- public void sethonzon(String honzon) {
334
-
335
- _honzon = honzon;
336
-
337
-
338
-
339
- }
340
-
341
- public String getshushi() {
342
-
343
- return _shushi;
344
-
345
-
346
-
347
- }
348
-
349
- public void setshushi(String shushi) {
350
-
351
- _shushi = shushi;
352
-
353
- }
354
-
355
- public String getaddress() {
356
-
357
- return _address;
358
-
359
-
360
-
361
- }
362
-
363
- public void setaddress(String address) {
364
-
365
- _address = address;
366
-
367
- }
368
-
369
- public String geturl() {
370
-
371
- return _url;
372
-
373
-
374
-
375
- }
376
-
377
- public void seturl(String url) {
378
-
379
- _url = url;
380
-
381
-
382
-
383
- }
384
-
385
- public String getnote() {
386
-
387
- return _note;
388
-
389
-
390
-
391
- }
392
-
393
- public void setnote(String note) {
394
-
395
- _note = note;
396
-
397
-
398
-
399
- }
400
-
401
461
  }
402
462
 
403
463
  ```
404
-
405
- ###試したこと
406
-
407
- ・on a null object referenceについて調べてみましたがいい解答がありませんでした。
408
-
409
- ・System.out.printlnでTempEditActivityに"selectedPrefNo"が受け取れているか確認しましたがちゃんとタップしたpositionのIDが出ていたためTempListActivityは合っていると思います。

1

コード用に書き換えました

2017/02/05 14:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ##下記がコンソールのエラーメッセージです。
18
18
 
19
- #####################################
19
+ ```java
20
20
 
21
21
  E/AndroidRuntime: FATAL EXCEPTION: main
22
22
 
@@ -76,10 +76,16 @@
76
76
 
77
77
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811) 
78
78
 
79
+ ```
80
+
81
+
82
+
79
83
 
80
84
 
81
85
  ###実際コンソールのログにあった.javaファイルのソースコード
82
86
 
87
+ ```java
88
+
83
89
  TempleEditActivity.java
84
90
 
85
91
 
@@ -252,7 +258,9 @@
252
258
 
253
259
  }
254
260
 
261
+ ```
262
+
255
- --------------------------------------------------------------------
263
+ ```java
256
264
 
257
265
  Temp.java
258
266
 
@@ -392,7 +400,7 @@
392
400
 
393
401
  }
394
402
 
395
-
403
+ ```
396
404
 
397
405
  ###試したこと
398
406