java.lang.NullPointerExceptionが String idd = c.getString(c.getColumnIndex(UserContract.Users._ID));
にでます。
どうぞ宜しくお願い致します。
java
public class MainActivity extends AppCompatActivity { SimpleAdapter mAdapter = null; List<Map<String, String>> mList = null; ListView list=null; SQLiteDatabase db=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MemoDBHelper memoDBHelper=new MemoDBHelper(this); db=memoDBHelper.getWritableDatabase(); db.execSQL(CREATE_TABLE); ListView list = (ListView) findViewById(R.id.listView); mList = new ArrayList<Map<String, String>>(); mAdapter = new SimpleAdapter(this, mList, android.R.layout.simple_list_item_2, new String[]{"title", "content", "data"}, //Map側のkey new int[]{android.R.id.text1, android.R.id.text2, R.id.eTxtData} //layout側のTextViewId 表示させたいMapのkey順に合わせる ); list.setAdapter(mAdapter); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { Intent intent = new Intent(MainActivity.this, EditActivity.class); intent.putExtra("INSERT",""); intent.putExtra("TITLE", mList.get(pos).get("title")); intent.putExtra("CONTENT", mList.get(pos).get("content")); intent.putExtra("DATA", mList.get(pos).get("data")); String title1= mList.get(pos).get("title"); String content1=mList.get(pos).get("content"); String data1=mList.get(pos).get("data"); String sql="SELECT * FROM UserContract.Users.TABLE_NAME\n" + " WHERE UserContract.Users.COL_TITLE== title1\n" + " AND UserContract.Users.COL_CONTENT == content1\")\n" + " AND UserContract.Users.COL_DATA==data1\")"; ////////この下の列にエラーが出ます。 Cursor c =db.rawQuery(sql,null); if(c.moveToFirst()) { String idd = c.getString(c.getColumnIndex(UserContract.Users._ID)); System.out.println(idd); c.close(); intent.putExtra("ID", idd); } startActivity(intent); } }); // ListView をコンテキストメニューに登録 registerForContextMenu(list); } @Override protected void onResume() { super.onResume(); //open helper //open db memoDBHelperに変更 MemoDBHelper memoDBHelper=new MemoDBHelper(this); SQLiteDatabase db=memoDBHelper.getWritableDatabase(); mList.clear(); String id=null; String title = null; String content = null; String data=null; //ここからコピペ //これはselect Cursor c; c=db.query( UserContract.Users.TABLE_NAME, null,//fields null,//where null,//where arg ここでは、多分何もせずに、全件取得して、リストに入れる null,//groupBy null,//having null,//order by null ); Log.v("DB_TEST","Count:"+c.getCount()); Map<String, String> map = new HashMap<String, String>(); while(c.moveToNext()){ // id=c.getString(c.getColumnIndex(UserContract.Users._ID)); title=c.getString(c.getColumnIndex(UserContract.Users.COL_TITLE)); content=c.getString(c.getColumnIndex(UserContract.Users.COL_CONTENT)); data=c.getString(c.getColumnIndex(UserContract.Users.COL_DATA)); Log.v("DB_TEST"," id: "+id+ "title: "+title+ "content: "+content+" data: "+data); map.put("title", title); map.put("content", content); map.put("data",data); mList.add(map); } c.close(); db.close(); // ListView のデータ変更を表示に反映 mAdapter.notifyDataSetChanged(); } }
java
E/AndroidRuntime: FATAL EXCEPTION: main android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: SELECT * FROM UserContract.Users.TABLE_NAME WHERE UserContract.Users.COL_TITLE== title1 AND UserContract.Users.COL_CONTENT == content1") AND UserContract.Users.COL_DATA==data1") at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:893) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:504) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1322) at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1261) at com.example.android.sample.memo.MainActivity$1.onItemClick(MainActivity.java:148) at android.widget.AdapterView.performItemClick(AdapterView.java:298) at android.widget.AbsListView.performItemClick(AbsListView.java:1086) at android.widget.AbsListView$PerformClick.run(AbsListView.java:2859) at android.widget.AbsListView$1.run(AbsListView.java:3533) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:4786) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at dalvik.system.NativeStart.main(Native Method)
まだ回答がついていません
会員登録して回答してみよう