2012-01-10 2 views
1

私はログイン画面でユーザーが最初に表示される単純なログインアプリケーションに取り組んでいます。ユーザーにusrnameとパスワードを入力させるための2つのedittextがあります。ユーザーが登録ボタンを押すと、アプリケーションはユーザーを登録ページに移動させ、ユーザーが入力した4つのフィールド(uname、pwd、Email Add、Postal Add)の登録詳細をデータベースに挿入する必要があります。私の登録クラスで登録クラスのコンテキストオブジェクトによって呼び出されるOpenOrCreateDatabase(****)でnullポインタ例外を除去する方法はありますか?

私は、コンストラクタは、コンテキストオブジェクトはmcontextという名前の別のオブジェクトにコピーされると呼ばれているとして、その後DatabaseOperationのコンストラクタが呼び出され、登録クラスのコンテキストを渡すことで、私のDatabaseOperationクラスのオブジェクトを作成しました。テーブルを作成するCreate_tblという名前のこのメソッドの後に、呼び出しが行われます。この方法では

私は私の質問がある.......

public void Create_Tbl() 
    { 
    db = mcontext.openOrCreateDatabase("Register.db", SQLiteDatabase.CREATE_IF_NECESSARY,null); 
    CREATE_TABLE_REGISTER = "CREATE TABLE IF NOT EXISTS "+table_name+"(u_id INTEGER PRIMARY KEY AUTOINCREMENT,u_name TEXT,u_eadd TEXT,u_pwd TEXT,u_padd TEXT)"; 
    db.execSQL(CREATE_TABLE_REGISTER); 
    } 

としてmcontextオブジェクトにOpenOrCreateDatabase()メソッドを呼び出し:なぜ私はopenOrCreateDatabase()NullPointerExceptionを取得しています。また

は、私は2つの他の場所

  1. Create_Tbl();
  2. DatabaseOperation dos = new DatabaseOperation(Registration.this);
+0

どのようにmContextを設定しますか? – ariefbayu

+0

DatabaseOperation dos =新しいDatabaseOperation(登録)。 – JAaVA

+0

設定コンテキストpublic DatabaseOperation(コンテキストコンテキスト){ \t \t // TODO自動生成コンストラクタスタブ \t \t mcontext = context; \t \t Create_Tbl(); } – JAaVA

答えて

0

あり、この問題を持つ多くの問題、であってもよいが、最も印象的なのmContextであり、デバッグしてくださいでNullPointerExceptionを取得していますあなたのそれがnullでないことを確認してください。 openOrCreateDatabase(String path、SQLiteDatabase.CursorFactory factory、null)の代わりに、メソッドopenOrCreateDatabase(String path、SQLiteDatabase.CursorFactory factory)を呼び出します。

関連する問題