1

[SOLVED] : I am so thank you to you all for help me. But I just solved it. It's about context that I didn't declare.

I try to insert into database in Android (SQLite) But when I have sent data from my apps, there was an error like this

10-19 17:19:43.560 19045-19045/com.example.michael.aplikasi E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NullPointerException at com.database.DBPelanggan.open(DBPelanggan.java:38) at com.example.michael.aplikasi.AddPelanggan$2.onClick(AddPelanggan.java:101) at android.view.View.performClick(View.java:4084) at android.view.View$PerformClick.run(View.java:16966) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4797) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at de.robv.android.xposed.XposedBridge.main(Xpos

this is my db adapter code

public static final String DATABASE_NAME = "aplikasi_mob_vers";
public static final String TAG = "DBPelanggan";
public static final String DATABASE_TABLE = "pelanggan";
public static final String VAR_KTP = "ktp";
public static final String VAR_NAMA = "nama";
public static final String VAR_ALAMAT = "alamat";
public static final String VAR_IK = "ibu_kandung";
public static final String VAR_BIRTH = "birthdate";
public static final int DATABASE_VERSION = 1;

final Context context;
DatabaseHelper helper;
SQLiteDatabase db;


public DBPelanggan open()
{
    db = helper.getWritableDatabase();
    return this;
}

public void close()
{
    helper.close();
}

public static class DatabaseHelper extends SQLiteOpenHelper
{
    public DatabaseHelper(Context context)
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public void onCreate(SQLiteDatabase db)
    {
        try
        {
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
    {
        Log.w(TAG, "Upgrade Database dari v." + oldVersion + " ke v." + newVersion);
        db.execSQL("DROP table if exist pelanggan");
        onCreate(db);
    }

    public SQLiteDatabase getWritableDatabase()
    {
        return super.getWritableDatabase();
    }
}

public DBPelanggan(Context ctx)
{
    this.context = ctx;
}



public boolean deletePelanggan()
{
    return db.delete(DATABASE_TABLE, null, null)>0;
}

public void insertPelanggan(Pelanggan pl)
{
    ContentValues init = new ContentValues();
    init.put(VAR_KTP, pl.ktp);    // 0
    init.put(VAR_NAMA, pl.nama);  // 1
    init.put(VAR_ALAMAT, pl.alamat); // 2
    init.put(VAR_IK, pl.ibu_kandung); // 3
    init.put(VAR_BIRTH, pl.birthdate); // 4
    db.insert(DATABASE_TABLE, null, init);
}

public ArrayList<Pelanggan> getDataPelanggan()
{
    ArrayList<Pelanggan> listPelanggan = new ArrayList<Pelanggan>();
    String selectQuery = "SELECT * FROM pelanggan";
    Cursor cursor = db.rawQuery(selectQuery, null);

    if(cursor.moveToFirst())
    {
        do
        {                         //              ktp                       nama              alamat              ibu kandung          birth date
            Pelanggan pelanggan = new Pelanggan(cursor.getString(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
            listPelanggan.add(pelanggan);
        }
        while (cursor.moveToNext());
    }
    db.close();
    return listPelanggan;
}

}

and this is a code in my apps

Button simpan = (Button) findViewById(R.id.saveButton);
    simpan.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            Pelanggan pelanggan = new Pelanggan();

            pelanggan.nama = et_name.getText().toString();
            pelanggan.ktp = et_ktp.getText().toString();
            pelanggan.alamat = et_address.getText().toString();
            pelanggan.ibu_kandung = et_ibuKandung.getText().toString();

            if(pelanggan.nama.equals("") || pelanggan.ktp.equals("") || pelanggan.alamat.equals("") || pelanggan.ibu_kandung.equals("") || day == 0 || month == 0 || year == 0)
            {
                Toast.makeText(getBaseContext(), "Tolong Isi yang Kosong", Toast.LENGTH_LONG).show();
            }
            else
            {

                String birth = year+"-"+month+"-"+day;
                pelanggan.birthdate = birth;

                Toast.makeText(AddPelanggan.this, "ktp "+pelanggan.ktp+" nama "+pelanggan.nama, Toast.LENGTH_LONG).show();
                dbPelanggan = new DBPelanggan(AddPelanggan.this);
                dbPelanggan.open();
                dbPelanggan.insertPelanggan(pelanggan);
                dbPelanggan.close();
            }
        }
    });

0 Answers0