2012-01-21 7 views
0

私は実行時に同じNPEを継続的に取得します。Android SQLiteエラー、NullPointerExceptionは私の存在の悩みです

ユーザー入力から名前を取得するテーブルを使用してデータベースを作成しようとしています。 2つのクラスがあります.1つはユーザーから情報を取得し、もう1つはデータベースを作成して処理するクラスです。

  1. "Name Entry" activity code
  2. "Database Handler" activity code
  3. logcat output
+1

従来のJavaパッケージネーミングを使用していないため、 –

+0

命名規則を使用しませんでしたか?私は考えていませんでした...私は何を変更する必要があります – user1160756

+0

パッケージ名は、一般的にすべて小文字です。大したことではありませんが、ちょっと混乱するかもしれません。 –

答えて

2

あなたがDbBasicsであなたのonCreateメソッドでname.toString()を呼び出すときに文字列名は空です。

static String name; // Null because you haven't assigned a string to it 

DATABASE_TABLE = name.toString() + "Basics"; // Causes nullpointerException 
+1

さらに、文字列に対して 'toString()'を呼び出すことは余計です。 –

+0

AHA !!ありがとうございました!アクティビティクラスから名前を取得する方法に関する提案はありますか?ここでは、データベースハンドラを呼び出すことができる2つの方法を追加する必要があります。あるケースではその名前は既知であり、もう1つのケース(上記のpastebinのリンクにあるもの)では名前がユーザによって与えられます。 toString()は冗長で、私は今編集しています(前にテスト目的のためにそこに持っていましたが、今は必要ありません) – user1160756

+1

なぜユーザーはデータベース名を指定しますか?テーブルの内容を表す名前を使用してください。あなたのケースではユーザーだと思われます。ユーザーが保存したいものを提供している場合は、データベースに保存します。あなたのようにそれをするのは本当に悪い習慣です。データベースをそのように使うべきではありません。 –

関連する問題