0
我试图从数据库中读取数据,使用HashMap但每次我在仿真器中运行程序时都会触发。我试着用** BasicNameValuePair *来检索数据,但是这也没有解决。 这里是我读取数据的代码。使用游标从数据库中检索数据。
DatabaseHandler databaseHandler = new DatabaseHandler(
getApplicationContext());
HashMap<String, String> user = new HashMap<String, String>();
user = databaseHandler.userDetails();
email = user.get("email").toString();
password = user.get("password").toString();
这里是我为userDetails()方法
public HashMap<String, String> userDetails() {
HashMap<String, String> user = new HashMap<String, String>();
String query = "SELECT * FROM login";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
// move to first row
cursor.moveToFirst();
if (cursor.getCount() > 0) {
user.put("email", cursor.getString(1));
user.put("password", cursor.getString(2));
}
cursor.close();
db.close();
return user;
}
logcat的是显示错误
07-16 17:13:23.272: E/AndroidRuntime(1396): at com.ved_main.mainpage.VerifyMainActivity.onCreate(VerifyMainActivity.java:56)
07-16 17:54:10.332: E/AndroidRuntime(1501): FATAL EXCEPTION: main
07-16 17:54:10.332: E/AndroidRuntime(1501): Process: com.ved_main.mainpage, PID: 1501
07-16 17:54:10.332: E/AndroidRuntime(1501): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ved_main.mainpage/com.ved_main.mainpage.VerifyMainActivity}: java.lang.NullPointerException
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread.access$800(ActivityThread.java:135)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.os.Handler.dispatchMessage(Handler.java:102)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.os.Looper.loop(Looper.java:136)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread.main(ActivityThread.java:5017)
07-16 17:54:10.332: E/AndroidRuntime(1501): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 17:54:10.332: E/AndroidRuntime(1501): at java.lang.reflect.Method.invoke(Method.java:515)
07-16 17:54:10.332: E/AndroidRuntime(1501): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
07-16 17:54:10.332: E/AndroidRuntime(1501): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
07-16 17:54:10.332: E/AndroidRuntime(1501): at dalvik.system.NativeStart.main(Native Method)
07-16 17:54:10.332: E/AndroidRuntime(1501): Caused by: java.lang.NullPointerException
07-16 17:54:10.332: E/AndroidRuntime(1501): at com.ved_main.mainpage.VerifyMainActivity.onCreate(VerifyMainActivity.java:54)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.Activity.performCreate(Activity.java:5231)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
07-16 17:54:10.332: E/AndroidRuntime(1501): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
07-16 17:54:10.332: E/AndroidRuntime(1501): ... 11 more
'VerifyMainActivity.java:54'请发送由上述活动的第54行组成的代码块。 – 0x5f3759df
第54行是相同的'email = user.get(“email”)。toString();'我写上面 – vishu
你必须检查用户在从它获取“email”值之前是否为空。 – joao2fast4u