-1

私のコードの何が問題なのかわかりません。私がやろうとしているのは、ユーザーが入力した情報をデータベースに保存することです。私を助けてください。

これは、ユーザーが入力したすべての情報を渡すコードです。これは私の 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)
4

3 に答える 3

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);
}

多分あなたを助けることができます。

于 2013-05-23T09:21:17.920 に答える
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);
}
于 2013-05-23T09:38:06.960 に答える
0
java.lang.NullPointerException 

dbSqlite が開いていることを確認してください。

于 2013-05-23T08:40:55.840 に答える