mercredi 21 octobre 2015

null object reference error while adding Data to Database [duplicate]

This question already has an answer here:

Ive got a nullPointerExeption while adding data to my database. Normally I would think that I forgot one string but the EditTexts are all filled with data.

This is the Code I call in my Fragment:

   @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_add_data, container, false);
        inputProduct = (EditText) view.findViewById(R.id.editText_product);
        inputLabel = (EditText) view.findViewById(R.id.editText_label);
        inputSerial = (EditText) view.findViewById(R.id.editText_serial);
        inputMac = (EditText) view.findViewById(R.id.editText_mac);
        inputDaaId = (EditText) view.findViewById(R.id.editText_daa_id);
        inputBill = (EditText) view.findViewById(R.id.editText_bill);
        buttonadd = (Button) view.findViewById(R.id.button_add_addData);
        buttondelete = (Button) view.findViewById(R.id.button_delete_addData);

        buttonadd.setEnabled(true);
        buttondelete.setEnabled(true);


        buttonadd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String product = inputProduct.getText().toString();
                String label = inputLabel.getText().toString();
                String serial = inputSerial.getText().toString();
                String mac = inputMac.getText().toString();
                String daaid = inputDaaId.getText().toString();
                String bill = inputBill.getText().toString();

                mydb.insertData(product, label, serial, mac, daaid, bill);

            }

        });

And this is my Error Message (line 61 is my mydb.insertData method)

10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime: FATAL EXCEPTION: main
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime: Process: com.sbeyer.daainv, PID: 15416
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.sbeyer.daainv.DbHelper.insertData(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)' on a null object reference
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at com.sbeyer.daainv.AddDataFragment$1.onClick(AddDataFragment.java:61)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.view.View.performClick(View.java:5198)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.view.View$PerformClick.run(View.java:21147)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:148)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5417)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-21 14:38:11.711 15416-15416/com.sbeyer.daainv E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-21 14:38:13.082 15416-15416/com.sbeyer.daainv I/Process: Sending signal. PID: 15416 SIG: 9

Maybe there is something wrong with my DbHelper class. But I cant find it...

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DbHelper extends SQLiteOpenHelper{

    public static final String DB_NAME = "DAAInv.db";
    public static final int DB_VERSION = 1;

    public static final String TABLE_LISTELEMENT = "listelement";
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_PRODUCT = "product";
    public static final String COLUMN_LABEL = "label";
    public static final String COLUMN_SERIAL = "serial";
    public static final String COLUMN_MAC = "mac";
    public static final String COLUMN_DAAID = "daaid";
    public static final String COLUMN_BILL = "bill";

    public static final String SQL_CREATE =
            "create table " + TABLE_LISTELEMENT + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_PRODUCT + " text not null, " +
                    COLUMN_LABEL + " text not null, " +
                    COLUMN_SERIAL + " text not null, " +
                    COLUMN_MAC + " text not null, " +
                    COLUMN_DAAID + " text not null, " +
                    COLUMN_BILL + " text not null";

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE);                             //Datenbanktable erstellen

        ContentValues contentValues = new ContentValues();

        contentValues.put("product", "PC");
        contentValues.put("label", "WSN-1234");
        contentValues.put("serial", "R4HSU74H");
        contentValues.put("mac", "45:S8:LK:0L:5K");
        contentValues.put("daaid", "145789");
        contentValues.put("bill", "15.19.2015");
        db.insert(TABLE_LISTELEMENT, null, contentValues);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    public DbHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    public boolean insertData(String product, String label, String serial, String mac, String daaid, String bill) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues contentValues = new ContentValues();

        contentValues.put("product", product);
        contentValues.put("label", label);
        contentValues.put("serial", serial);
        contentValues.put("mac", mac);
        contentValues.put("daaid", daaid);
        contentValues.put("bill", bill);
        db.insert(TABLE_LISTELEMENT, null, contentValues);
        return true;
    }
}

Aucun commentaire:

Enregistrer un commentaire