I am new to Android Development and I get a NullPointerException when trying to get a writable database. Here is the code:
Main Activity
public class MainActivity extends AppCompatActivity {
MyDatabase myDatabase;
SQLiteDatabase sqLiteDatabase;
EditText textOne;
EditText textTwo;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textOne = (EditText) findViewById(R.id.textOne);
textTwo = (EditText) findViewById(R.id.textTwo);
}
public void addInfo(View view) {
String name = textOne.getText().toString();
String address = textTwo.getText().toString();
myDatabase = new MyDatabase(context);
sqLiteDatabase = myDatabase.getWritableDatabase();
myDatabase.addData(name, address, sqLiteDatabase);
myDatabase.close();
textOne.setText("");
textTwo.setText("");
}
}
My database code:
public class MyDatabase extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "info.db";
private static final String TABLE_NAME = "Personal_Info";
private static final String NAME_COLUMN = "names";
private static final String ADDRESS_COLUMN = "address";
private static final String ROW_IDENTIFIER = "_id";
private static int DATABSE_VERSION = 1;
private static String query = "CREATE TABLE " + TABLE_NAME + "(" + ROW_IDENTIFIER + " INTEGER PRIMARY KEY AUTOINCREMENT, " + NAME_COLUMN + " TEXT, " + ADDRESS_COLUMN + " TEXT);";
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABSE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(query);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void addData(String name, String address, SQLiteDatabase db) {
ContentValues contentValues = new ContentValues();
contentValues.put(NAME_COLUMN,name);
contentValues.put(ADDRESS_COLUMN,address);
db.insert(TABLE_NAME,null,contentValues);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
try {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME );
} catch (SQLException e) {
e.printStackTrace();
}
onCreate(db);
}
}
The error is thrown on this line in MainActivity:
myDatabase = new MyDatabase(context);
All input is welcome.