質問編集履歴

5

xmlのプログラムの追加

2019/01/15 09:02

投稿

amabile046
amabile046

スコア18

test CHANGED
File without changes
test CHANGED
@@ -354,8 +354,68 @@
354
354
 
355
355
 
356
356
 
357
+ ```activity_main.xml
358
+
359
+ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
360
+
361
+ xmlns:app="http://schemas.android.com/apk/res-auto"
362
+
363
+ xmlns:tools="http://schemas.android.com/tools"
364
+
365
+ android:layout_width="match_parent"
366
+
367
+ android:layout_height="match_parent"
368
+
369
+
370
+
371
+ tools:context=".MainActivity" >
372
+
373
+
374
+
375
+ <TextView
376
+
377
+ android:id="@+id/textView1"
378
+
379
+ android:layout_width="wrap_content"
380
+
381
+ android:layout_height="wrap_content"
382
+
383
+ android:layout_alignParentLeft="true"
384
+
385
+ android:layout_alignParentTop="true"
386
+
387
+ android:layout_alignParentRight="true"
388
+
389
+ android:layout_marginLeft="0dp"
390
+
391
+ android:layout_marginTop="40dp"
392
+
393
+ android:layout_marginRight="0dp"
394
+
395
+ android:text="英単語を登録する"
396
+
397
+ android:textAppearance="?android:attr/textAppearanceMedium" />
398
+
399
+
400
+
401
+ ~文字数制限のため省略~
402
+
403
+
404
+
405
+ </LinearLayout>
406
+
407
+ ```
408
+
409
+
410
+
411
+
412
+
413
+
414
+
357
415
  これらをコンパイルし、アプリの中でデータベースを開こうとすると、「アプリケーションが終了しました」と出てきて変えることができません。参考にしたサイトでは、MyOpenHelperのことを”SQLiteOpenHelperを継承したクラスで”と書いてあるのでその当たりの解釈ができていないのかな・・・?と考えています。わかる方がいましたら教えてくださると幸いです。
358
416
 
359
417
 
360
418
 
361
419
  追記:SQLiteのデータベースは、テーブル名はwords、要素はeng(英語を格納)とjpn(日本語を格納)の2つとしたいと思っています。IDも必要になれば追加したいと思っております。
420
+
421
+ 追記2:activity_main.xmlの上部はこのように書いております。サイトのコードをそのまま貼ったはずではありますが念のため、、

4

追記

2019/01/15 09:02

投稿

amabile046
amabile046

スコア18

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  こちらのサイト[リンク内容](https://tech.pjin.jp/blog/2013/02/26/sqlite%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%82%92%E7%90%86%E8%A7%A3%E3%81%A7%E3%81%8D%E3%82%8Bandroid%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%A2/)
2
2
 
3
- に載せられているコードを変更し、androidアプリを作成しようとしています。
3
+ に載せられているコードを変更し、英単語帳のようなandroidアプリを作成しようとしています。
4
4
 
5
5
 
6
6
 
@@ -355,3 +355,7 @@
355
355
 
356
356
 
357
357
  これらをコンパイルし、アプリの中でデータベースを開こうとすると、「アプリケーションが終了しました」と出てきて変えることができません。参考にしたサイトでは、MyOpenHelperのことを”SQLiteOpenHelperを継承したクラスで”と書いてあるのでその当たりの解釈ができていないのかな・・・?と考えています。わかる方がいましたら教えてくださると幸いです。
358
+
359
+
360
+
361
+ 追記:SQLiteのデータベースは、テーブル名はwords、要素はeng(英語を格納)とjpn(日本語を格納)の2つとしたいと思っています。IDも必要になれば追加したいと思っております。

3

誤字

2019/01/15 08:19

投稿

amabile046
amabile046

スコア18

test CHANGED
File without changes
test CHANGED
@@ -354,46 +354,4 @@
354
354
 
355
355
 
356
356
 
357
-
358
-
359
-
360
-
361
- 変更したい部分1⃣
362
-
363
- ShowDataBase.javaの、
364
-
365
-     // queryメソッドの実行例
366
-
367
- Cursor c = db.query("person", new String[] { "name", "age" }, null,
368
-
369
- null, null, null, null);
370
-
371
- の、name,ageをそれぞれeng,jpnに変えたい
372
-
373
-
374
-
375
- 変更したい部分2⃣
376
-
377
- MainActivity.javaの、
378
-
379
-         ContentValues insertValues = new ContentValues();
380
-
381
- insertValues.put("name", eng);
382
-
383
- insertValues.put("age", jpn);
384
-
385
- long id = db.insert("person", eng, insertValues);
386
-
387
- の、name,ageをそれぞれeng,jpnに変えたい
388
-
389
-
390
-
391
- 変更したい部分3⃣
392
-
393
- db.delete("person", "name=?", new String[] { eng });
394
-
395
- の、person,nameをそれぞれwords,engに変えたい
396
-
397
-
398
-
399
357
  これらをコンパイルし、アプリの中でデータベースを開こうとすると、「アプリケーションが終了しました」と出てきて変えることができません。参考にしたサイトでは、MyOpenHelperのことを”SQLiteOpenHelperを継承したクラスで”と書いてあるのでその当たりの解釈ができていないのかな・・・?と考えています。わかる方がいましたら教えてくださると幸いです。

2

プログラムの修正

2019/01/15 07:59

投稿

amabile046
amabile046

スコア18

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,10 @@
1
1
  こちらのサイト[リンク内容](https://tech.pjin.jp/blog/2013/02/26/sqlite%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%82%92%E7%90%86%E8%A7%A3%E3%81%A7%E3%81%8D%E3%82%8Bandroid%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%A2/)
2
2
 
3
- に載せられているコードを使い、androidアプリを作成しようとしています。
3
+ に載せられているコードを変更し、androidアプリを作成しようとしています。
4
-
5
-
6
-
7
- アプリの動作には関係ないのですが、以下のコード
4
+
5
+
6
+
7
+
8
8
 
9
9
  ```ShowDataBase.java
10
10
 
@@ -54,109 +54,329 @@
54
54
 
55
55
  // queryメソッドの実行例
56
56
 
57
+ Cursor c = db.query("words", new String[] { "eng", "jpn" }, null,
58
+
59
+ null, null, null, null);
60
+
61
+
62
+
63
+ boolean mov = c.moveToFirst();
64
+
65
+ while (mov) {
66
+
67
+ TextView textView = new TextView(this);
68
+
69
+ textView.setText(String.format("%s : %s", c.getString(0), c.getString(1)));
70
+
71
+ mov = c.moveToNext();
72
+
73
+ layout.addView(textView);
74
+
75
+ }
76
+
77
+ c.close();
78
+
79
+ db.close();
80
+
81
+ }
82
+
83
+ }
84
+
85
+ ```
86
+
87
+
88
+
89
+ ```MainActivity.java
90
+
91
+ package com.example.wordmemo;
92
+
93
+
94
+
95
+ import android.app.Activity;
96
+
97
+ import android.content.ContentValues;
98
+
99
+ import android.content.Intent;
100
+
101
+ import android.database.sqlite.SQLiteDatabase;
102
+
103
+ import android.os.Bundle;
104
+
105
+ import android.view.View;
106
+
107
+ import android.view.View.OnClickListener;
108
+
109
+ import android.widget.Button;
110
+
111
+ import android.widget.EditText;
112
+
113
+ import android.widget.Toast;
114
+
115
+
116
+
117
+ public class MainActivity extends Activity {
118
+
119
+
120
+
121
+ @Override
122
+
123
+ protected void onCreate(Bundle savedInstanceState) {
124
+
125
+ super.onCreate(savedInstanceState);
126
+
127
+ setContentView(R.layout.activity_main);
128
+
129
+
130
+
131
+ MyOpenHelper helper = new MyOpenHelper(this);
132
+
133
+ final SQLiteDatabase db = helper.getWritableDatabase();
134
+
135
+
136
+
137
+ final EditText engText = (EditText) findViewById(R.id.editEnglish); //nameText=engText
138
+
139
+ final EditText jpnText = (EditText) findViewById(R.id.editJapanese); //ageText=jpnText
140
+
141
+
142
+
143
+ Button entryButton = (Button) findViewById(R.id.insert);
144
+
145
+ entryButton.setOnClickListener(new OnClickListener() {
146
+
147
+
148
+
149
+ @Override
150
+
151
+ public void onClick(View v) {
152
+
153
+ String eng = engText.getText().toString();
154
+
155
+ String jpn = jpnText.getText().toString();
156
+
157
+
158
+
159
+ ContentValues insertValues = new ContentValues();
160
+
161
+ insertValues.put("eng", eng);
162
+
163
+ insertValues.put("jpn", jpn);
164
+
165
+ long id = db.insert("words", eng, insertValues);
166
+
167
+ }
168
+
169
+ });
170
+
171
+
172
+
173
+ Button updateButton = (Button) findViewById(R.id.update);
174
+
175
+ updateButton.setOnClickListener(new OnClickListener() {
176
+
177
+
178
+
179
+ @Override
180
+
181
+ public void onClick(View v) {
182
+
183
+ String eng = engText.getText().toString();
184
+
185
+ String jpn = jpnText.getText().toString();
186
+
187
+
188
+
189
+ if (eng.equals("")) {
190
+
191
+ Toast.makeText(MainActivity.this, "英語を入力してください。",
192
+
193
+ Toast.LENGTH_SHORT).show();
194
+
195
+ } else {
196
+
197
+ ContentValues updateValues = new ContentValues();
198
+
199
+ updateValues.put("jpn", jpn);
200
+
201
+ db.update("words", updateValues, "eng=?", new String[] { eng });
202
+
203
+ }
204
+
205
+ }
206
+
207
+ });
208
+
209
+
210
+
211
+ Button deleteButton = (Button) findViewById(R.id.delete);
212
+
213
+ deleteButton.setOnClickListener(new OnClickListener() {
214
+
215
+
216
+
217
+ @Override
218
+
219
+ public void onClick(View v) {
220
+
221
+ String eng = engText.getText().toString();
222
+
223
+ String jpn = jpnText.getText().toString();
224
+
225
+
226
+
227
+ if (eng.equals("")) {
228
+
229
+ Toast.makeText(MainActivity.this, "英語を入力してください。",
230
+
231
+ Toast.LENGTH_SHORT).show();
232
+
233
+ } else {
234
+
235
+ db.delete("words", "eng=?", new String[] { eng });
236
+
237
+ }
238
+
239
+
240
+
241
+ }
242
+
243
+ });
244
+
245
+
246
+
247
+ Button deleteAllButton = (Button) findViewById(R.id.AllDelete);
248
+
249
+ deleteAllButton.setOnClickListener(new OnClickListener() {
250
+
251
+
252
+
253
+ @Override
254
+
255
+ public void onClick(View v) {
256
+
257
+ String eng = engText.getText().toString();
258
+
259
+ String jpn = jpnText.getText().toString();
260
+
261
+
262
+
263
+ db.delete("words", null, null);
264
+
265
+
266
+
267
+ }
268
+
269
+ });
270
+
271
+
272
+
273
+ Button detaBaseButton = (Button) findViewById(R.id.dataBase);
274
+
275
+ detaBaseButton.setOnClickListener(new OnClickListener() {
276
+
277
+
278
+
279
+ @Override
280
+
281
+ public void onClick(View v) {
282
+
283
+ Intent dbIntent = new Intent(MainActivity.this,
284
+
285
+ ShowDataBase.class);
286
+
287
+ startActivity(dbIntent);
288
+
289
+
290
+
291
+ }
292
+
293
+ });
294
+
295
+ }
296
+
297
+ }
298
+
299
+ ```
300
+
301
+
302
+
303
+ ```MyOpenHelper.java
304
+
305
+ package com.example.wordmemo;
306
+
307
+
308
+
309
+ import android.content.Context;
310
+
311
+ import android.database.sqlite.SQLiteDatabase;
312
+
313
+ import android.database.sqlite.SQLiteOpenHelper;
314
+
315
+
316
+
317
+ public class MyOpenHelper extends SQLiteOpenHelper {
318
+
319
+
320
+
321
+ public MyOpenHelper(Context context) {
322
+
323
+ super(context, "SaveDB", null, 1);
324
+
325
+ }
326
+
327
+
328
+
329
+ @Override
330
+
331
+ public void onCreate(SQLiteDatabase db) {
332
+
333
+ db.execSQL("create table words(" + " eng text not null," + "jpn text "
334
+
335
+ + ");");
336
+
337
+ }
338
+
339
+
340
+
341
+ @Override
342
+
343
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
344
+
345
+
346
+
347
+ }
348
+
349
+
350
+
351
+ }
352
+
353
+ ```
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+ 変更したい部分1⃣
362
+
363
+ ShowDataBase.javaの、
364
+
365
+     // queryメソッドの実行例
366
+
57
367
  Cursor c = db.query("person", new String[] { "name", "age" }, null,
58
368
 
59
369
  null, null, null, null);
60
370
 
61
-
62
-
63
- boolean mov = c.moveToFirst();
371
+ の、name,ageをそれぞれeng,jpnに変えたい
64
-
65
- while (mov) {
372
+
66
-
67
- TextView textView = new TextView(this);
373
+
68
-
69
- textView.setText(String.format("%s : %s", c.getString(0), c.getString(1)));
374
+
70
-
71
- mov = c.moveToNext();
72
-
73
- layout.addView(textView);
74
-
75
- }
76
-
77
- c.close();
375
+ 変更したい部分2⃣
78
-
79
- db.close();
376
+
80
-
81
- }
82
-
83
- }
84
-
85
- ```
86
-
87
-
88
-
89
- ```MainActivity.java
377
+ MainActivity.javaの、
90
-
91
- package com.example.wordmemo;
378
+
92
-
93
-
94
-
95
- import android.app.Activity;
96
-
97
- import android.content.ContentValues;
98
-
99
- import android.content.Intent;
100
-
101
- import android.database.sqlite.SQLiteDatabase;
102
-
103
- import android.os.Bundle;
104
-
105
- import android.view.View;
106
-
107
- import android.view.View.OnClickListener;
108
-
109
- import android.widget.Button;
110
-
111
- import android.widget.EditText;
112
-
113
- import android.widget.Toast;
114
-
115
-
116
-
117
- public class MainActivity extends Activity {
118
-
119
-
120
-
121
- @Override
122
-
123
- protected void onCreate(Bundle savedInstanceState) {
124
-
125
- super.onCreate(savedInstanceState);
126
-
127
- setContentView(R.layout.activity_main);
128
-
129
-
130
-
131
- MyOpenHelper helper = new MyOpenHelper(this);
132
-
133
- final SQLiteDatabase db = helper.getWritableDatabase();
134
-
135
-
136
-
137
- final EditText engText = (EditText) findViewById(R.id.editEnglish); //nameText=engText
138
-
139
- final EditText jpnText = (EditText) findViewById(R.id.editJapanese); //ageText=jpnText
140
-
141
-
142
-
143
- Button entryButton = (Button) findViewById(R.id.insert);
144
-
145
- entryButton.setOnClickListener(new OnClickListener() {
146
-
147
-
148
-
149
- @Override
150
-
151
- public void onClick(View v) {
152
-
153
- String eng = engText.getText().toString();
154
-
155
- String jpn = jpnText.getText().toString();
156
-
157
-
158
-
159
- ContentValues insertValues = new ContentValues();
379
+         ContentValues insertValues = new ContentValues();
160
380
 
161
381
  insertValues.put("name", eng);
162
382
 
@@ -164,230 +384,10 @@
164
384
 
165
385
  long id = db.insert("person", eng, insertValues);
166
386
 
167
- }
168
-
169
- });
170
-
171
-
172
-
173
- Button updateButton = (Button) findViewById(R.id.update);
174
-
175
- updateButton.setOnClickListener(new OnClickListener() {
176
-
177
-
178
-
179
- @Override
180
-
181
- public void onClick(View v) {
182
-
183
- String eng = engText.getText().toString();
184
-
185
- String jpn = jpnText.getText().toString();
186
-
187
-
188
-
189
- if (eng.equals("")) {
190
-
191
- Toast.makeText(MainActivity.this, "英語を入力してください。",
192
-
193
- Toast.LENGTH_SHORT).show();
194
-
195
- } else {
196
-
197
- ContentValues updateValues = new ContentValues();
198
-
199
- updateValues.put("age", jpn);
200
-
201
- db.update("person", updateValues, "name=?", new String[] { eng });
202
-
203
- }
204
-
205
- }
206
-
207
- });
208
-
209
-
210
-
211
- Button deleteButton = (Button) findViewById(R.id.delete);
212
-
213
- deleteButton.setOnClickListener(new OnClickListener() {
214
-
215
-
216
-
217
- @Override
218
-
219
- public void onClick(View v) {
220
-
221
- String eng = engText.getText().toString();
222
-
223
- String jpn = jpnText.getText().toString();
224
-
225
-
226
-
227
- if (eng.equals("")) {
228
-
229
- Toast.makeText(MainActivity.this, "英語を入力してください。",
230
-
231
- Toast.LENGTH_SHORT).show();
232
-
233
- } else {
234
-
235
- db.delete("person", "name=?", new String[] { eng });
236
-
237
- }
238
-
239
-
240
-
241
- }
242
-
243
- });
244
-
245
-
246
-
247
- Button deleteAllButton = (Button) findViewById(R.id.AllDelete);
248
-
249
- deleteAllButton.setOnClickListener(new OnClickListener() {
250
-
251
-
252
-
253
- @Override
254
-
255
- public void onClick(View v) {
256
-
257
- String eng = engText.getText().toString();
258
-
259
- String jpn = jpnText.getText().toString();
260
-
261
-
262
-
263
- db.delete("person", null, null);
264
-
265
-
266
-
267
- }
268
-
269
- });
270
-
271
-
272
-
273
- Button detaBaseButton = (Button) findViewById(R.id.dataBase);
274
-
275
- detaBaseButton.setOnClickListener(new OnClickListener() {
276
-
277
-
278
-
279
- @Override
280
-
281
- public void onClick(View v) {
282
-
283
- Intent dbIntent = new Intent(MainActivity.this,
284
-
285
- ShowDataBase.class);
286
-
287
- startActivity(dbIntent);
288
-
289
-
290
-
291
- }
292
-
293
- });
294
-
295
- }
296
-
297
- }
298
-
299
- ```
300
-
301
-
302
-
303
- ```MyOpenHelper.java
304
-
305
- package com.example.wordmemo;
306
-
307
-
308
-
309
- import android.content.Context;
310
-
311
- import android.database.sqlite.SQLiteDatabase;
312
-
313
- import android.database.sqlite.SQLiteOpenHelper;
314
-
315
-
316
-
317
- public class MyOpenHelper extends SQLiteOpenHelper {
318
-
319
-
320
-
321
- public MyOpenHelper(Context context) {
322
-
323
- super(context, "SaveDB", null, 1);
324
-
325
- }
326
-
327
-
328
-
329
- @Override
330
-
331
- public void onCreate(SQLiteDatabase db) {
332
-
333
- db.execSQL("create table words(" + " eng text not null," + "jpn text "
334
-
335
- + ");");
336
-
337
- }
338
-
339
-
340
-
341
- @Override
342
-
343
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
344
-
345
-
346
-
347
- }
348
-
349
-
350
-
351
- }
352
-
353
- ```
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
- 変更したい部分1⃣
362
-
363
- ShowDataBase.javaの、
364
-
365
-     // queryメソッドの実行例
366
-
367
- Cursor c = db.query("person", new String[] { "name", "age" }, null,
368
-
369
- null, null, null, null);
370
-
371
387
  の、name,ageをそれぞれeng,jpnに変えたい
372
388
 
373
389
 
374
390
 
375
- 変更したい部分2⃣
376
-
377
- MainActivity.javaの、
378
-
379
-         ContentValues insertValues = new ContentValues();
380
-
381
- insertValues.put("name", eng);
382
-
383
- insertValues.put("age", jpn);
384
-
385
- long id = db.insert("person", eng, insertValues);
386
-
387
- の、name,ageをそれぞれeng,jpnに変えたい
388
-
389
-
390
-
391
391
  変更したい部分3⃣
392
392
 
393
393
  db.delete("person", "name=?", new String[] { eng });
@@ -396,4 +396,4 @@
396
396
 
397
397
 
398
398
 
399
- これらの変更行いたいのですが、コンパイルし、アプリの中でデータベースを開こうとすると、「アプリケーションが終了しました」と出てきて変えることができません。参考にしたサイトでは、MyOpenHelperのことを”SQLiteOpenHelperを継承したクラスで”と書いてあるのでその当たりの解釈ができていないのかな・・・?と考えています。わかる方がいましたら教えてくださると幸いです。
399
+ これらをコンパイルし、アプリの中でデータベースを開こうとすると、「アプリケーションが終了しました」と出てきて変えることができません。参考にしたサイトでは、MyOpenHelperのことを”SQLiteOpenHelperを継承したクラスで”と書いてあるのでその当たりの解釈ができていないのかな・・・?と考えています。わかる方がいましたら教えてくださると幸いです。

1

書き方

2019/01/15 07:58

投稿

amabile046
amabile046

スコア18

test CHANGED
File without changes
test CHANGED
@@ -354,6 +354,12 @@
354
354
 
355
355
 
356
356
 
357
+
358
+
359
+
360
+
361
+ 変更したい部分1⃣
362
+
357
363
  ShowDataBase.javaの、
358
364
 
359
365
      // queryメソッドの実行例
@@ -362,9 +368,11 @@
362
368
 
363
369
  null, null, null, null);
364
370
 
365
- の、name,ageをそれぞれeng,jpnに変
371
+ の、name,ageをそれぞれeng,jpnに変えたい
372
+
373
+
374
+
366
-
375
+ 変更したい部分2⃣
367
-
368
376
 
369
377
  MainActivity.javaの、
370
378
 
@@ -376,13 +384,15 @@
376
384
 
377
385
  long id = db.insert("person", eng, insertValues);
378
386
 
379
- の、name,ageをそれぞれeng,jpnに変
387
+ の、name,ageをそれぞれeng,jpnに変えたい
388
+
389
+
390
+
380
-
391
+ 変更したい部分3⃣
381
-
382
392
 
383
393
  db.delete("person", "name=?", new String[] { eng });
384
394
 
385
- の、person,nameをそれぞれwords,engに変
395
+ の、person,nameをそれぞれwords,engに変えたい
386
396
 
387
397
 
388
398