【发布时间】:2013-12-13 11:52:21
【问题描述】:
大家好,很久以后我在这里发布任何查询。我在以下代码中收到 NullPointer 异常错误:-
public class DBAdapter {
int id = 0;
public static final String KEY_ROWID = "_id";
public static final String KEY_FNAME = "FirstName";
public static final String KEY_LNAME = "LastName";
public static final String KEY_EMAILID = "Email";
public static final String KEY_PASSWORD = "Password";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "UserDetail";
private static final String DATABASE_TABLE = "tblUserDetail";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE = "create table tblUserDetail (_id integer primary key autoincrement, "
+ "FirstName text not null, LastName text, Email text not null, Password text not null );";
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx){
this.context = ctx;
DBHelper = new DatabaseHelper(ctx);
}
private static class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper(Context context) {
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(TAG, "Upgrading database version from"+ oldVersion +
"to"+ newVersion +", which will destroy all old data");
db.execSQL("DROP TABLE IF EXIST tblUserDetail");
onCreate(db);
}
}
public DBAdapter open() throws SQLException{
db = DBHelper.getWritableDatabase();
return this;
}
public void close(){
DBHelper.close();
}
public long insertData(String fName,String lName, String emailId, String password){
ContentValues intialValues = new ContentValues();
intialValues.put(KEY_FNAME, fName);
intialValues.put(KEY_LNAME, lName);
intialValues.put(KEY_EMAILID, emailId);
intialValues.put(KEY_PASSWORD, password);
return db.insert(DATABASE_TABLE, null, intialValues);
}
public String getAllEntries()
{
SQLiteDatabase database = DBHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(
"SELECT FirstName FROM tblUserDetail WHERE _id = 1", null);
if(cursor.moveToFirst()) {
return cursor.getString(0);
}
return cursor.getString(0);
}
}
我在单击按钮时调用insertData 和getAllEntries:-
Submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// Toast toast = Toast.makeText(getApplicationContext(), "cliecked on submit button", Toast.LENGTH_LONG);
// toast.show();
String str;
try{
db.insertData(etFN.getText().toString(), etLN.getText().toString(), etEI.getText().toString(), etPS.getText().toString());
str = db.getAllEntries();
Toast toast = Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG);
toast.show();
}
catch(Exception ex){
Context context = getApplicationContext();
CharSequence text = ex.toString();
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
});
请帮助我摆脱这个 NullPointer 异常错误。我们将不胜感激。
我在db.insertData() 行收到错误消息。
【问题讨论】:
-
哪一行抛出异常?
-
你能粘贴你的堆栈跟踪吗?我们需要看看到底是什么抛出了这个异常。
-
请发布您的 logcat 错误
-
Getting NullPointer Exception好的。但在哪里? -
@himanshu 如果想要更快的解决方案,请发布您的 logcat。
标签: android sqlite android-sqlite