我不知道我的代码有什么问题。我想要做的是保存用户在数据库中输入的信息。请帮帮我。
这是传递用户输入的所有信息的代码。这是我的SignupActivity。
databaseAdapter.saveUserInfo(Lastname,Firstname,MiddleInitial,Username, Password);
现在,这是我的DatabaseAdapter中的代码,其中包含所有信息。
public long saveUserInfo(String Lastname, String Firstname,String MiddleInitial,String Username,String Password)
{
ContentValues contentValues = new ContentValues();
contentValues.put(Constants.DATABASE_COLUMN_FIRSTNAME, Firstname);
contentValues.put(Constants.DATABASE_COLUMN_LASTNAME, Lastname);
contentValues.put(Constants.DATABASE_COLUMN_MI, MiddleInitial);
contentValues.put(Constants.DATABASE_COLUMN_USERNAME, Username);
contentValues.put(Constants.DATABASE_COLUMN_PASSWORD, Password);
return dbSqlite.insert(Constants.DATABASE_TABLE_USER_NAME_WITH_USERNAME_PASSWORD, null, contentValues);
}
我错过了什么吗?这是我的logcat中的错误
05-23 16:37:15.080: W/dalvikvm(18203): threadid=1: thread exiting with uncaught exception (group=0x402ac760)
05-23 16:37:15.085: E/AndroidRuntime(18203): FATAL EXCEPTION: main
05-23 16:37:15.085: E/AndroidRuntime(18203): java.lang.NullPointerException
05-23 16:37:15.085: E/AndroidRuntime(18203): at com.example.customercare.SignUpActivity$1.onClick(SignUpActivity.java:65)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.view.View.performClick(View.java:3131)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.view.View$PerformClick.run(View.java:12035)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.os.Handler.handleCallback(Handler.java:587)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.os.Handler.dispatchMessage(Handler.java:92)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.os.Looper.loop(Looper.java:132)
05-23 16:37:15.085: E/AndroidRuntime(18203): at android.app.ActivityThread.main(ActivityThread.java:4123)
05-23 16:37:15.085: E/AndroidRuntime(18203): at java.lang.reflect.Method.invokeNative(Native Method)
05-23 16:37:15.085: E/AndroidRuntime(18203): at java.lang.reflect.Method.invoke(Method.java:491)
05-23 16:37:15.085: E/AndroidRuntime(18203): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
05-23 16:37:15.085: E/AndroidRuntime(18203): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
05-23 16:37:15.085: E/AndroidRuntime(18203): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
我不知道dbSqlite
在哪里被初始化,
也许你可以这样写。
//enter code here
public void save(Person person){
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("phone", person.getPhone());
values.put("amount", person.getAmount());
db.insert("person", null, values);
}
也许可以帮到你。
答案 1 :(得分:0)
java.lang.NullPointerException
请确保您的dbSqlite正在打开。
答案 2 :(得分:0)
我添加了dbSqlite
初始化。
public long saveUserInfo(String Lastname, String Firstname,String MiddleInitial,String Username,String Password)
{
dbSqlite = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(Constants.DATABASE_COLUMN_FIRSTNAME, Firstname);
contentValues.put(Constants.DATABASE_COLUMN_LASTNAME, Lastname);
contentValues.put(Constants.DATABASE_COLUMN_MI, MiddleInitial);
contentValues.put(Constants.DATABASE_COLUMN_USERNAME, Username);
contentValues.put(Constants.DATABASE_COLUMN_PASSWORD, Password);
return dbSqlite.insert(Constants.DATABASE_TABLE_USER_NAME_WITH_USERNAME_PASSWORD, null, contentValues);
}