teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

変更

2017/04/18 11:28

投稿

edoooooo
edoooooo

スコア478

title CHANGED
@@ -1,1 +1,1 @@
1
- android.database.sqlite.SQLiteException: near ".": syntax error ます。
1
+ java.lang.NullPointerExceptionます。どうぞよろしくお願いします。
body CHANGED
@@ -1,9 +1,6 @@
1
- android.database.sqlite.SQLiteException: near ".": syntax error がでます。
1
+ java.lang.NullPointerExceptionが String idd = c.getString(c.getColumnIndex(UserContract.Users._ID));
2
+ にでます。
2
3
 
3
- SELECT文を代入したString sqlを
4
- Cursor c =db.rawQuery(sql,null);とするとエラーがでます。
5
- SELECTに "."のsyntaxエラーがあるとのエラーが出ていますが、どこなのかがわかりません。
6
-
7
4
  どうぞ宜しくお願い致します。
8
5
 
9
6
 

6

変更

2017/04/18 11:28

投稿

edoooooo
edoooooo

スコア478

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,9 @@
1
- id=c.getInt(UserContract.Users._ID);
1
+ android.database.sqlite.SQLiteException: near ".": syntax error がでます。
2
- このコードにNullPointerがでます。
3
2
 
4
- 何が問題なのでしょうか?
5
- アドバイスいただけないでょうか?
3
+ SELECT文代入たString sqlを
4
+ Cursor c =db.rawQuery(sql,null);とするとエラーがでます。
5
+ SELECTに "."のsyntaxエラーがあるとのエラーが出ていますが、どこなのかがわかりません。
6
+
6
7
  どうぞ宜しくお願い致します。
7
8
 
8
9
 

5

修正

2017/04/18 11:22

投稿

edoooooo
edoooooo

スコア478

title CHANGED
File without changes
body CHANGED
@@ -77,6 +77,7 @@
77
77
  " AND UserContract.Users.COL_CONTENT == content1\")\n" +
78
78
  " AND UserContract.Users.COL_DATA==data1\")";
79
79
 
80
+ ////////この下の列にエラーが出ます。
80
81
  Cursor c =db.rawQuery(sql,null);
81
82
 
82
83
 

4

コードを最新に変更

2017/04/18 11:20

投稿

edoooooo
edoooooo

スコア478

title CHANGED
@@ -1,1 +1,1 @@
1
- id=c.getInt(UserContract.Users._ID); に、NullPointerがでます。
1
+ android.database.sqlite.SQLiteException: near ".": syntax error がでます。
body CHANGED
@@ -10,16 +10,18 @@
10
10
 
11
11
 
12
12
  public class MainActivity extends AppCompatActivity {
13
- // ListView 用アダプタ
13
+
14
14
  SimpleAdapter mAdapter = null;
15
- // ListView に設定するデーた
15
+
16
16
  List<Map<String, String>> mList = null;
17
17
 
18
- //新しく追加ListView
19
18
  ListView list=null;
19
+
20
20
  SQLiteDatabase db=null;
21
21
 
22
22
 
23
+
24
+
23
25
  @Override
24
26
  protected void onCreate(Bundle savedInstanceState) {
25
27
  super.onCreate(savedInstanceState);
@@ -31,7 +33,7 @@
31
33
 
32
34
 
33
35
 
34
- //db.execSQL(CREATE_TABLE);
36
+ db.execSQL(CREATE_TABLE);
35
37
 
36
38
 
37
39
 
@@ -41,25 +43,22 @@
41
43
 
42
44
  mAdapter = new SimpleAdapter(this,
43
45
  mList,
44
- //独自で定義したlayoutを適応する
46
+
45
47
  android.R.layout.simple_list_item_2,
46
48
  new String[]{"title", "content", "data"}, //Map側のkey
47
49
  new int[]{android.R.id.text1, android.R.id.text2, R.id.eTxtData} //layout側のTextViewId 表示させたいMapのkey順に合わせる
48
50
  );
49
51
 
50
- // ListView にアダプターをセット
51
52
  list.setAdapter(mAdapter);
52
53
 
53
-
54
- // ListView のアイテム選択イベント
55
54
  list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
56
55
 
57
56
  @Override
58
57
  public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
59
58
 
59
+
60
60
  Intent intent = new Intent(MainActivity.this, EditActivity.class);
61
61
 
62
- // //これは編集だから から文字にする
63
62
  intent.putExtra("INSERT","");
64
63
 
65
64
  intent.putExtra("TITLE", mList.get(pos).get("title"));
@@ -67,32 +66,28 @@
67
66
  intent.putExtra("DATA", mList.get(pos).get("data"));
68
67
 
69
68
 
70
- Cursor c;
71
- c=db.query(
72
- UserContract.Users.TABLE_NAME,
73
- null,//fields
74
- null,//where
75
- null,//where arg ここでは、多分何もせずに、全件取得して、リストに入れる
69
+ String title1= mList.get(pos).get("title");
70
+ String content1=mList.get(pos).get("content");
76
- null,//groupBy
71
+ String data1=mList.get(pos).get("data");
77
- null,//having
78
- null,//order by
79
- null
80
- );
81
72
 
82
-
83
73
 
74
+
75
+ String sql="SELECT * FROM UserContract.Users.TABLE_NAME\n" +
76
+ " WHERE UserContract.Users.COL_TITLE== title1\n" +
77
+ " AND UserContract.Users.COL_CONTENT == content1\")\n" +
78
+ " AND UserContract.Users.COL_DATA==data1\")";
79
+
80
+ Cursor c =db.rawQuery(sql,null);
81
+
82
+
84
83
  if(c.moveToFirst()) {
85
- ///////////////この下にNullPointerがでます。
86
84
  String idd = c.getString(c.getColumnIndex(UserContract.Users._ID));
87
85
 
88
86
 
87
+ System.out.println(idd);
89
88
 
90
- System.out.println(idd);
91
-
92
89
  c.close();
93
90
 
94
- //ここにデータベースから取得した値をいれる
95
-
96
91
  intent.putExtra("ID", idd);
97
92
  }
98
93
 
@@ -105,26 +100,34 @@
105
100
  }
106
101
 
107
102
 
103
+
104
+
105
+
108
- @Override
106
+ @Override
109
107
  protected void onResume() {
110
108
  super.onResume();
111
109
 
110
+ //open helper
111
+ //open db memoDBHelperに変更
112
112
  MemoDBHelper memoDBHelper=new MemoDBHelper(this);
113
113
  SQLiteDatabase db=memoDBHelper.getWritableDatabase();
114
114
 
115
- mList.clear();
115
+ mList.clear();
116
116
 
117
- Integer id=null;
117
+ String id=null;
118
118
  String title = null;
119
119
  String content = null;
120
120
  String data=null;
121
121
 
122
+ //ここからコピペ
123
+
124
+ //これはselect
122
125
  Cursor c;
123
126
  c=db.query(
124
127
  UserContract.Users.TABLE_NAME,
125
128
  null,//fields
126
129
  null,//where
127
- null,//where arg ここでは、全件取得して、リストに入れる
130
+ null,//where arg ここでは、多分何もせずに、全件取得して、リストに入れる
128
131
  null,//groupBy
129
132
  null,//having
130
133
  null,//order by
@@ -135,10 +138,9 @@
135
138
 
136
139
  Map<String, String> map = new HashMap<String, String>();
137
140
  while(c.moveToNext()){
138
-
139
- ///////このしたでNullPointerが発生しています。
141
+
140
- id=c.getInt(UserContract.Users._ID);
142
+ // id=c.getString(c.getColumnIndex(UserContract.Users._ID));
141
- title=c.getString(c.getColumnIndex(UserContract.Users.COL_TITLE));
143
+ title=c.getString(c.getColumnIndex(UserContract.Users.COL_TITLE));
142
144
  content=c.getString(c.getColumnIndex(UserContract.Users.COL_CONTENT));
143
145
  data=c.getString(c.getColumnIndex(UserContract.Users.COL_DATA));
144
146
  Log.v("DB_TEST"," id: "+id+ "title: "+title+ "content: "+content+" data: "+data);
@@ -152,7 +154,6 @@
152
154
 
153
155
  }
154
156
 
155
-
156
157
  c.close();
157
158
 
158
159
  db.close();
@@ -161,41 +162,40 @@
161
162
  // ListView のデータ変更を表示に反映
162
163
  mAdapter.notifyDataSetChanged();
163
164
  }
165
+
166
+
164
167
  }
165
168
 
169
+
166
170
  ```
167
171
  ```java
168
172
  E/AndroidRuntime: FATAL EXCEPTION: main
169
- java.lang.RuntimeException: Unable to resume activity {com.example.android.sample.memo/com.example.android.sample.memo.MainActivity}: java.lang.NullPointerException
170
- at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2595)
171
- at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2623)
172
- at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2100)
173
- at android.app.ActivityThread.access$600(ActivityThread.java:137)
174
- at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
175
- at android.os.Handler.dispatchMessage(Handler.java:99)
176
- at android.os.Looper.loop(Looper.java:213)
177
- at android.app.ActivityThread.main(ActivityThread.java:4786)
178
- at java.lang.reflect.Method.invokeNative(Native Method)
179
- at java.lang.reflect.Method.invoke(Method.java:511)
180
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
181
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
182
- at dalvik.system.NativeStart.main(Native Method)
183
- Caused by: java.lang.NullPointerException
184
- at com.example.android.sample.memo.MainActivity.onResume(MainActivity.java:196)
185
- at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184)
186
- at android.app.Activity.performResume(Activity.java:5082)
187
- at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2585)
188
- at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2623) 
189
- at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2100) 
190
- at android.app.ActivityThread.access$600(ActivityThread.java:137) 
191
- at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206) 
192
- at android.os.Handler.dispatchMessage(Handler.java:99) 
193
- at android.os.Looper.loop(Looper.java:213) 
194
- at android.app.ActivityThread.main(ActivityThread.java:4786) 
195
- at java.lang.reflect.Method.invokeNative(Native Method) 
196
- at java.lang.reflect.Method.invoke(Method.java:511) 
197
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
198
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
199
- at dalvik.system.NativeStart.main(Native Method) 
173
+ android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: SELECT * FROM UserContract.Users.TABLE_NAME
174
+ WHERE UserContract.Users.COL_TITLE== title1
175
+ AND UserContract.Users.COL_CONTENT == content1")
176
+ AND UserContract.Users.COL_DATA==data1")
177
+ at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
178
+ at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:893)
179
+ at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:504)
180
+ at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
181
+ at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
182
+ at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
183
+ at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
184
+ at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1322)
185
+ at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261)
186
+ at com.example.android.sample.memo.MainActivity$1.onItemClick(MainActivity.java:148)
187
+ at android.widget.AdapterView.performItemClick(AdapterView.java:298)
188
+ at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
189
+ at android.widget.AbsListView$PerformClick.run(AbsListView.java:2859)
190
+ at android.widget.AbsListView$1.run(AbsListView.java:3533)
191
+ at android.os.Handler.handleCallback(Handler.java:615)
192
+ at android.os.Handler.dispatchMessage(Handler.java:92)
193
+ at android.os.Looper.loop(Looper.java:213)
194
+ at android.app.ActivityThread.main(ActivityThread.java:4786)
195
+ at java.lang.reflect.Method.invokeNative(Native Method)
196
+ at java.lang.reflect.Method.invoke(Method.java:511)
197
+ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
198
+ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
199
+ at dalvik.system.NativeStart.main(Native Method)
200
200
 
201
201
  ```

3

コードの追加

2017/04/18 11:19

投稿

edoooooo
edoooooo

スコア478

title CHANGED
File without changes
body CHANGED
@@ -161,6 +161,7 @@
161
161
  // ListView のデータ変更を表示に反映
162
162
  mAdapter.notifyDataSetChanged();
163
163
  }
164
+ }
164
165
 
165
166
  ```
166
167
  ```java

2

コードのついか

2017/04/18 07:34

投稿

edoooooo
edoooooo

スコア478

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,106 @@
5
5
  アドバイスをいただけないでしょうか?
6
6
  どうぞ宜しくお願い致します。
7
7
 
8
+
8
9
  ```java
10
+
11
+
12
+ public class MainActivity extends AppCompatActivity {
13
+ // ListView 用アダプタ
14
+ SimpleAdapter mAdapter = null;
15
+ // ListView に設定するデーた
16
+ List<Map<String, String>> mList = null;
17
+
18
+ //新しく追加ListView
19
+ ListView list=null;
20
+ SQLiteDatabase db=null;
21
+
22
+
23
+ @Override
24
+ protected void onCreate(Bundle savedInstanceState) {
25
+ super.onCreate(savedInstanceState);
26
+ setContentView(R.layout.activity_main);
27
+
28
+
29
+ MemoDBHelper memoDBHelper=new MemoDBHelper(this);
30
+ db=memoDBHelper.getWritableDatabase();
31
+
32
+
33
+
34
+ //db.execSQL(CREATE_TABLE);
35
+
36
+
37
+
38
+ ListView list = (ListView) findViewById(R.id.listView);
39
+ mList = new ArrayList<Map<String, String>>();
40
+
41
+
42
+ mAdapter = new SimpleAdapter(this,
43
+ mList,
44
+ //独自で定義したlayoutを適応する
45
+ android.R.layout.simple_list_item_2,
46
+ new String[]{"title", "content", "data"}, //Map側のkey
47
+ new int[]{android.R.id.text1, android.R.id.text2, R.id.eTxtData} //layout側のTextViewId 表示させたいMapのkey順に合わせる
48
+ );
49
+
50
+ // ListView にアダプターをセット
51
+ list.setAdapter(mAdapter);
52
+
53
+
54
+ // ListView のアイテム選択イベント
55
+ list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
56
+
57
+ @Override
58
+ public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
59
+
60
+ Intent intent = new Intent(MainActivity.this, EditActivity.class);
61
+
62
+ // //これは編集だから から文字にする
63
+ intent.putExtra("INSERT","");
64
+
65
+ intent.putExtra("TITLE", mList.get(pos).get("title"));
66
+ intent.putExtra("CONTENT", mList.get(pos).get("content"));
67
+ intent.putExtra("DATA", mList.get(pos).get("data"));
68
+
69
+
70
+ Cursor c;
71
+ c=db.query(
72
+ UserContract.Users.TABLE_NAME,
73
+ null,//fields
74
+ null,//where
75
+ null,//where arg ここでは、多分何もせずに、全件取得して、リストに入れる
76
+ null,//groupBy
77
+ null,//having
78
+ null,//order by
79
+ null
80
+ );
81
+
82
+
83
+
84
+ if(c.moveToFirst()) {
85
+ ///////////////この下にNullPointerがでます。
86
+ String idd = c.getString(c.getColumnIndex(UserContract.Users._ID));
87
+
88
+
89
+
90
+ System.out.println(idd);
91
+
92
+ c.close();
93
+
94
+ //ここにデータベースから取得した値をいれる
95
+
96
+ intent.putExtra("ID", idd);
97
+ }
98
+
99
+ startActivity(intent);
100
+ }
101
+ });
102
+
103
+ // ListView をコンテキストメニューに登録
104
+ registerForContextMenu(list);
105
+ }
106
+
107
+
9
108
  @Override
10
109
  protected void onResume() {
11
110
  super.onResume();

1

誤字

2017/04/18 07:33

投稿

edoooooo
edoooooo

スコア478

title CHANGED
File without changes
body CHANGED
@@ -37,7 +37,8 @@
37
37
  Map<String, String> map = new HashMap<String, String>();
38
38
  while(c.moveToNext()){
39
39
 
40
- ///////このしたでNullPointerが発生しています。 id=c.getInt(UserContract.Users._ID);
40
+ ///////このしたでNullPointerが発生しています。
41
+ id=c.getInt(UserContract.Users._ID);
41
42
  title=c.getString(c.getColumnIndex(UserContract.Users.COL_TITLE));
42
43
  content=c.getString(c.getColumnIndex(UserContract.Users.COL_CONTENT));
43
44
  data=c.getString(c.getColumnIndex(UserContract.Users.COL_DATA));