質問編集履歴

1

文法の編集

2018/01/20 12:45

投稿

yamaiti3
yamaiti3

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,459 +1,305 @@
1
- DBに日付を入力して保存、そあと本日の日付と保存したときの日付一致したらlistviewに表示したいのですがまくいきません。アドバイスお願いします
1
+ ようなERROR出てまいます。これはどういっERRORなのでしょか?ご回答お願いします
2
+
3
+
4
+
5
+ android.database.sqlite.SQLiteException: unrecognized token: "2018年01月20日" (code 1): , while compiling: SELECT day, time, event FROM person WHERE day =2018年01月20日
6
+
7
+
2
8
 
3
9
 
4
10
 
5
11
  ```java
6
12
 
7
- package com.example.j15092.tst2;
8
-
9
-
10
-
11
- import android.app.DatePickerDialog;
12
-
13
- import android.app.TimePickerDialog;
14
-
15
- import android.content.ContentValues;
16
-
17
- import android.content.Intent;
18
-
19
- import android.database.Cursor;
20
-
21
- import android.database.sqlite.SQLiteDatabase;
22
-
23
- import android.speech.tts.TextToSpeech;
24
-
25
- import android.support.v7.app.AppCompatActivity;
26
-
27
- import android.os.Bundle;
28
-
29
- import android.view.View;
30
-
31
- import android.widget.ArrayAdapter;
32
-
33
- import android.widget.Button;
34
-
35
- import android.widget.DatePicker;
36
-
37
- import android.widget.EditText;
38
-
39
- import android.widget.ListView;
40
-
41
- import android.widget.TextView;
42
-
43
- import android.widget.TimePicker;
44
-
45
- import android.widget.Toast;
46
-
47
-
48
-
49
- import java.text.SimpleDateFormat;
50
-
51
- import java.util.Calendar;
52
-
53
- import java.util.Date;
54
-
55
-
56
-
57
- public class MainActivity extends AppCompatActivity {
58
-
59
-
60
-
61
- private SQLiteDatabase dbObject;
62
-
63
- private EditText searchText;
64
-
65
- private Button searchBtn;
66
-
67
-
68
-
69
- //日付設定ダイアログのインスタンスを格納する変数
70
-
71
- private DatePickerDialog.OnDateSetListener dateListener;
72
-
73
- //時刻設定ダイアログのインスタンスを格納す変数
74
-
75
- private TimePickerDialog.OnTimeSetListener timeListener;
76
-
77
-
78
-
79
- //音声合成
80
-
81
- //final private float SPEACH_NOMAL = 1.0f;
82
-
83
- //private TextToSpeech tts;
84
-
85
- //private Button speachButton;
86
-
87
- @Override
88
-
89
- protected void onCreate(Bundle savedInstanceState) {
90
-
91
- super.onCreate(savedInstanceState);
92
-
93
- setContentView(R.layout.activity_main);
94
-
95
-
96
-
97
- final MyOpenHelper helper = new MyOpenHelper(this);
98
-
99
- final SQLiteDatabase db = helper.getWritableDatabase();
100
-
101
-
102
-
103
- final EditText searchText = (EditText) findViewById(R.id.searchText);
104
-
105
- final EditText timeText = (EditText) findViewById(R.id.editTime);
106
-
107
- final EditText dayText = (EditText) findViewById(R.id.editDay);
108
-
109
- final EditText eventText = (EditText) findViewById(R.id.editEvent);
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
- Button speak = (Button)findViewById(R.id.sound);
122
-
123
- speak.setOnClickListener(new View.OnClickListener() {
124
-
125
- @Override
126
-
127
- public void onClick(View view) {
128
-
129
- Intent intent =new Intent(MainActivity.this,
130
-
131
- speach.class);
132
-
133
- startActivity(intent);}
134
-
135
- });
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
- // final TextView disp = (TextView) findViewById(R.id.dis1);
146
-
147
- //final TextView display = (TextView) findViewById(R.id.dis2);
148
-
149
-
150
-
151
- //データを保存
152
-
153
- Button entryButton = (Button) findViewById(R.id.insert);
154
-
155
- entryButton.setOnClickListener(new View.OnClickListener() {
156
-
157
- @Override
158
-
159
- public void onClick(View view) {
160
-
161
- String time = timeText.getText().toString();
162
-
163
- String event = eventText.getText().toString();
164
-
165
- String day = dayText.getText().toString();
166
-
167
-
168
-
169
- Toast toast = Toast.makeText(MainActivity.this, "保存しました", Toast.LENGTH_LONG);
170
-
171
- toast.show();
172
-
173
-
174
-
175
-
176
-
177
- db.beginTransaction();
178
-
179
- //val.put("date",sdf.format(dat));
180
-
181
- //db.insert("product", null, val);
182
-
183
-
184
-
185
- ContentValues insertValues = new ContentValues();
186
-
187
- insertValues.put("day",day);
188
-
189
- insertValues.put("time",time);
190
-
191
- insertValues.put("event", event);
192
-
193
-
194
-
195
- long id = db.insert("person", time,insertValues );
196
-
197
-
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+ //データを検索
22
+
23
+ Button seachButton = (Button) findViewById(R.id.seachButton);
24
+
25
+ seachButton.setOnClickListener(new View.OnClickListener() {
26
+
27
+ ArrayAdapter<String> ad;
28
+
29
+
30
+
31
+ @Override
32
+
33
+ public void onClick(View view) {
34
+
35
+
36
+
37
+ SQLiteDatabase db = helper.getReadableDatabase();
38
+
39
+ Cursor cs = null;
40
+
41
+
42
+
43
+
44
+
45
+ String[] cols = {"day","time", "event",};
46
+
47
+ //String[] params = {searchText.getText().toString()};
48
+
49
+
50
+
51
+ //現在日時に初期化
52
+
53
+ Date dateTime = new Date();
54
+
55
+
56
+
57
+ SimpleDateFormat sdf =
58
+
59
+ new SimpleDateFormat("yyyy年MM月dd日");
60
+
61
+ String today = sdf.format(dateTime);
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+ ad = new ArrayAdapter<String>(
70
+
71
+ manage_edit.this,
72
+
73
+ android.R.layout.simple_list_item_1);
74
+
75
+
76
+
77
+ cs = db.query("person", cols, "day ="
78
+
79
+ +today, null, null, null, null);
80
+
81
+
82
+
83
+ boolean mov = cs.moveToFirst();
84
+
85
+
86
+
87
+ while(mov) {
88
+
89
+
90
+
91
+ int dayd = cs.getColumnIndex("day");
92
+
93
+ int timet = cs.getColumnIndex("time");
94
+
95
+ int evente = cs.getColumnIndex("event");
96
+
97
+ String day = cs.getString(dayd);
98
+
99
+ String time = cs.getString(timet);
100
+
101
+ String event = cs.getString(evente);
102
+
103
+ String ser = day+time + "内容は" + event;
104
+
105
+
106
+
107
+ ad.add(ser);
108
+
109
+ ((ListView) findViewById(R.id.list)).setAdapter(ad);
110
+
111
+
112
+
113
+ mov = cs.moveToNext();
114
+
115
+
116
+
117
+ }
118
+
119
+
120
+
121
+ cs.close();
122
+
123
+ db.close();
124
+
125
+ }
126
+
127
+ });
128
+
129
+
130
+
131
+ //日付設定ダイアログのイベントをインスタンス化
132
+
133
+ dateListener =
134
+
135
+ new DatePickerDialog.OnDateSetListener() {
136
+
137
+ //日付設定ダイアログのokボタンがクリックされたときの処理
138
+
139
+ @Override
140
+
141
+ public void onDateSet(
142
+
143
+ DatePicker view,
144
+
145
+ int year,
146
+
147
+ int monthOfYear,
148
+
149
+ int dayOfMonth
150
+
151
+ ) {
152
+
153
+ //データーをエディットtextに書き込む
154
+
155
+ ((EditText) findViewById(R.id.editDay))
156
+
157
+ .setText(year + "年" +
158
+
159
+ (monthOfYear + 1) +
160
+
161
+ "月" +
162
+
163
+ dayOfMonth + "日");
164
+
165
+
166
+
167
+ ((EditText) findViewById(R.id.searchText))
168
+
169
+ .setText(year + "年" +
170
+
171
+ (monthOfYear + 1) +
172
+
173
+ "月" +
174
+
175
+ dayOfMonth + "");
176
+
177
+
178
+
179
+ }
180
+
181
+ };
182
+
183
+
184
+
185
+ //時刻設定のダイアログのイベントリスナーをインスタンス化
186
+
187
+ timeListener =
188
+
189
+ new TimePickerDialog.OnTimeSetListener() {
190
+
191
+ @Override
192
+
193
+ public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
194
+
195
+ //データをエディットtextに書き込む
196
+
197
+ ((EditText) findViewById(R.id.editTime))
198
+
199
+ .setText(hourOfDay + "時" + minute + "分");
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ }
208
+
209
+ };
210
+
211
+
212
+
213
+ ((Button) findViewById(R.id.Button))
214
+
215
+ .setOnClickListener(
216
+
217
+ new View.OnClickListener() {
218
+
219
+ @Override
220
+
221
+ public void onClick(View view) {
222
+
223
+ //現在日時を取得
224
+
225
+ java.util.Calendar calendar = java.util.Calendar.getInstance();
226
+
227
+ //日時設定ダイアログのインスタンスを生成
228
+
229
+ DatePickerDialog dateDialog =
230
+
231
+ new DatePickerDialog(
232
+
233
+ manage_edit.this, dateListener,
234
+
235
+ calendar.get(java.util.Calendar.YEAR),
236
+
237
+ calendar.get(java.util.Calendar.MONTH),
238
+
239
+ calendar.get(java.util.Calendar.DAY_OF_MONTH)
240
+
241
+ );
242
+
243
+ //日付設定ダイアログを表示
244
+
245
+ dateDialog.show();
246
+
247
+
248
+
249
+ }
250
+
251
+ }
252
+
253
+ );
254
+
255
+
256
+
257
+ ((Button) findViewById(R.id.Button2))
258
+
259
+ .setOnClickListener(
260
+
261
+ new View.OnClickListener() {
262
+
263
+ @Override
264
+
265
+ public void onClick(View view) {
266
+
267
+ //現在時刻を取得
268
+
269
+ java.util.Calendar calendar = java.util.Calendar.getInstance();
270
+
271
+ //時刻設定ダイアログのインスタンスを生成
272
+
273
+ TimePickerDialog timeDialog =
274
+
275
+ new TimePickerDialog(
276
+
277
+ manage_edit.this,
278
+
279
+ timeListener,
280
+
281
+ calendar.get(java.util.Calendar.HOUR_OF_DAY),
282
+
283
+ calendar.get(java.util.Calendar.MINUTE),
284
+
285
+ false
286
+
287
+ );
288
+
289
+ //時刻設定ダイアログを表示
290
+
291
+ timeDialog.show();
292
+
293
+ }
294
+
295
+ }
296
+
297
+ );
198
298
 
199
299
  }
200
300
 
201
-
202
-
203
- });
204
-
205
-
206
-
207
-
208
-
209
- //データを更新
210
-
211
- Button updateButton = (Button) findViewById(R.id.update);
212
-
213
- updateButton.setOnClickListener(new View.OnClickListener() {
214
-
215
- @Override
216
-
217
- public void onClick(View view) {
218
-
219
-
220
-
221
- String time = timeText.getText().toString();
222
-
223
- String event = eventText.getText().toString();
224
-
225
- String day = dayText.getText().toString();
226
-
227
-
228
-
229
- if(time.equals("")) {
230
-
231
- Toast.makeText(MainActivity.this, "時間を入力してください", Toast.LENGTH_SHORT).show();
232
-
233
- }else{
234
-
235
- ContentValues updateValues = new ContentValues();
236
-
237
- updateValues.put("event",event);
238
-
239
-
240
-
241
- db.update("person",updateValues,"time=?",new String[]{time});
242
-
243
-
244
-
245
- }
301
+ }
246
-
247
- }
302
+
248
-
249
- });
303
+
250
-
251
-
252
-
253
- //すべてのデータを削除
254
-
255
- Button deleteAllButton = (Button) findViewById(R.id.deleteAll);
256
-
257
- deleteAllButton.setOnClickListener(new View.OnClickListener() {
258
-
259
- @Override
260
-
261
- public void onClick(View view) {
262
-
263
-
264
-
265
- String time = timeText.getText().toString();
266
-
267
- String event = eventText.getText().toString();
268
-
269
-
270
-
271
- db.delete("person",null,null);
272
-
273
- }
274
-
275
- });
276
-
277
-
278
-
279
-
280
-
281
- //データベースを閲覧
282
-
283
- Button dataBaseBUtton = (Button) findViewById(R.id.dataBase);
284
-
285
- dataBaseBUtton.setOnClickListener(new View.OnClickListener() {
286
-
287
- @Override
288
-
289
- public void onClick(View view) {
290
-
291
- Intent dbIntent = new Intent(MainActivity.this,
292
-
293
- ShowDataBase.class);
294
-
295
- startActivity(dbIntent);
296
-
297
- }
298
-
299
- });
300
-
301
-
302
-
303
- //データを削除
304
-
305
- Button deleteButton = (Button) findViewById(R.id.delete);
306
-
307
- deleteButton.setOnClickListener(new View.OnClickListener() {
308
-
309
- @Override
310
-
311
- public void onClick(View view) {
312
-
313
- String time = timeText.getText().toString();
314
-
315
- String event = eventText.getText().toString();
316
-
317
-
318
-
319
- if(time.equals("")){
320
-
321
- Toast.makeText(MainActivity.this,"名前を入力してください。",
322
-
323
- Toast.LENGTH_SHORT).show();
324
-
325
- }else {
326
-
327
- db.delete("person","time=?", new String[]{time});
328
-
329
- }
330
-
331
- }
332
-
333
-
334
-
335
- });
336
-
337
-
338
-
339
- //データを検索
340
-
341
- Button seachButton = (Button) findViewById(R.id.seachButton);
342
-
343
- seachButton.setOnClickListener(new View.OnClickListener(){
344
-
345
- ArrayAdapter<String>ad;
346
-
347
- @Override
348
-
349
- public void onClick(View view){
350
-
351
-
352
-
353
- SQLiteDatabase db = helper.getReadableDatabase();
354
-
355
- Cursor cs = null;
356
-
357
-
358
-
359
- Date datck = new Date();
360
-
361
- SimpleDateFormat sdfdatck= new SimpleDateFormat("yyyyMMdd");
362
-
363
-
364
-
365
- try{
366
-
367
- String[] cols = {"day","time","event"};
368
-
369
- String today = sdfdatck.format(datck);
370
-
371
-
372
-
373
- ad= new ArrayAdapter<String>(
374
-
375
- MainActivity.this,
376
-
377
- android.R.layout.simple_list_item_1
378
-
379
- );
380
-
381
-
382
-
383
- cs = db.query("person", cols,"day = "+ today, null,null,null,null );
384
-
385
-
386
-
387
-
388
-
389
- while (cs.moveToNext()) {
390
-
391
-
392
-
393
- int timet = cs.getColumnIndex("time");
394
-
395
- int evente = cs.getColumnIndex("event");
396
-
397
- int dayd = cs.getColumnIndex("day");
398
-
399
- String time = cs.getString(timet);
400
-
401
- String event = cs.getString(evente);
402
-
403
- String day = cs.getString(dayd);
404
-
405
- String ser = day+"は"+time + "内容は" + event;
406
-
407
- ad.add(ser);
408
-
409
- ((ListView) findViewById(R.id.list)).setAdapter(ad);
410
-
411
- // disp.setText(cs.getString(0));
412
-
413
- // display.setText(cs.getString(1));
414
-
415
-
416
-
417
- }
418
-
419
- }catch (Exception e){
420
-
421
-
422
-
423
-
424
-
425
-
426
-
427
- cs.close();
428
-
429
- db.close();
430
-
431
- }
432
-
433
-
434
-
435
-
436
-
437
-
438
-
439
- }
440
-
441
- });
442
-
443
-
444
-
445
-
446
-
447
-
448
-
449
- }
450
-
451
- }
452
-
453
-
454
-
455
-
456
-
457
- コード
458
304
 
459
305
  ```