解析字符串到日期时,我得到空指针异常。我正在使用simpledateformat进行解析。 请参阅下面的代码,并帮助我。解析字符串到目前为止的空指针异常
错误在下面线
日期dateFROM = formatter.parse(from2);
代码 MainDatabaseHandler.java
`public List<String> getTimeSlotATT(String text2, String from2) {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String selectQuery = "SELECT * FROM "+ TABLE_LABELS + " WHERE "+ KEY_NAME + " ='"+text2+"' AND "+FROM_DATE+"='"+from2+"'";
String selectQuery1 = "SELECT * FROM "+ TABLE_LABELS + " WHERE "+ KEY_NAME + " ='"+text2+"'";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);//selectQuery,selectedArguments
Cursor cursor1 = db.rawQuery(selectQuery1, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
if(cursor.getString(6)==null){
list.add(null);
}
else if(cursor.getString(6)=="FULL DAY"){
list.add(cursor.getString(6));
}
else {
list.add(cursor.getString(6));
}
} while (cursor.moveToNext());
}
if (cursor1.moveToFirst()) {
do {
try {
Date dateFROM = formatter.parse(from2);
Date dateDB = formatter.parse(cursor1.getString(4));
Date dateDB1 = formatter.parse(cursor1.getString(5));
if(dateDB.after(dateFROM)){
}
else if(dateDB.before(dateFROM)){
if(dateDB1.equals(dateFROM)||dateDB1.after(dateFROM)){
list.add(cursor1.getString(6));
}
else if(dateDB1.before(dateFROM)){
}
}
} catch (ParseException e) {
e.printStackTrace();
}
} while (cursor1.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning lables
return list;
}`
logcat的错误
`java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1009)
at java.text.DateFormat.parse(DateFormat.java:553)
at avi.MainDatabaseHandler.getIimeSlotAII(MainDatabase 45
Handler.java:580)
at avi.book_setup_usr.loadIimeSpinnerDataAII(book_setu 45
p_usr.java:460)
at avi.book_setup_usr.access$1(book_setup_usr.java:448 45
at avi.book_setup_usr$8.onClick(book_setup_usr.javaz77 45
7)
at com.android.internal.app.AlertControl1er$ButtonHand1er.handleMe 45
ssage(AlertController.java:166)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.ref1ect.Method.invokeNative(Native Method)
at java.lang.ref1ect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(Zygo 45
teInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)`
在其中的三行的格式,你所得到的空指针的? –
确保从数据库获取的数据不是'null',并且String'from2'不是'null'。 –
全部三个 日期dateFROM = formatter.parse(from2); 日期dateDB = formatter.parse(cursor1.getString(4)); 日期dateDB1 = formatter.parse(cursor1.getString(5)); @RakeshKR但在字符串from2我从datepicker对话框中获取数据。 –