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