0

i got this error when trying to add property id, name ,email , phone number and spinner data (from owner). Here is my database......

public Owner getOwnerById(long id) {
    Cursor cursor = sqLiteDatabase.query(DataBaseHelper.TABLE_NAME, mAllKey,
            DataBaseHelper.KEY_ID + " = ?",
            new String[] { String.valueOf(id) }, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
    }

    Owner owner = cursorToOwner(cursor);
    return owner;
}

public Property addProperty (int id,String name, String email, String 
phoneNumber, long ownerId) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();

    values.put(DataBaseHelper.PROPERTY_ID, id);
    values.put(DataBaseHelper.PROPERTY_NAME, name);
    values.put(DataBaseHelper.PROPERTY_EMAIL, email);
    values.put(DataBaseHelper.PROPERTY_PHONENUMBER, phoneNumber);
    values.put(DataBaseHelper.PROPERTY_OWNER_ID, ownerId);
    long insertId = db
            .insert(DataBaseHelper.TABLE_PROPERTY, null, values);
    Cursor cursor = db.query(DataBaseHelper.TABLE_PROPERTY, mAllColumns,
            DataBaseHelper.PROPERTY_ID + " = " + insertId, null, null,
            null, null);
    cursor.moveToFirst();

    Property newProperty = cursorToProperty(cursor);
    cursor.close();
    return newProperty;
  }

  private Property cursorToProperty(Cursor cursor) {
    Property property = new Property();
    property.setId(cursor.getInt(0));
    property.setName(cursor.getString(1));
    property.setEmail(cursor.getString(2));
    property.setPhoneNumber(cursor.getString(3));

    // get The company by id
    long ownerId = cursor.getLong(4);

    DataBaseHelper db = new DataBaseHelper(mContext);
    Owner owner = db.getOwnerById(ownerId);
    if (owner != null)
        property.setOwner(owner);

    return property;
   }

logcat

  java.lang.NullPointerException: Attempt to invoke virtual method 
 'android.database.Cursor 
android.database.sqlite.SQLiteDatabase.query(java.lang.String, j 
java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, 
java.lang.String, java.lang.String)' on a null object reference at
getOwnerById(DataBaseHelper.java:165)
cursorToProperty(DataBaseHelper.java:307)
addProperty(DataBaseHelper.java:223)
onClick(PropertyActivity.java:112)

My idea is add an Owner details then it will pass to Property activity spinner.After that spinner data(Owner) and property data will add into database.

scarlet pro
  • 181
  • 12
  • `java.lang.NullPointerException` . In method `getOwnerById(long id)` where did you initialize `sqLiteDatabase` ? – ADM Mar 25 '18 at 16:41
  • `sqLiteDatabase` is not initialize in `getOwnerById` method – akhilesh0707 Mar 25 '18 at 16:42
  • Hi, I added SQLiteDatabase sqLiteDatabase= this.getWritableDatabase(); in getOwnerById but it still remain the same. – scarlet pro Mar 25 '18 at 17:15
  • @BebekimLim Can you post your updated code to show where you've put `getWritableDatabase()`? And is it the same exception in the logcat, in the same location? – Michael Dodd Mar 25 '18 at 18:34

0 Answers0