i have 3 classes. DatabaseHandler, DatabaseController and addItem. I can insert one record, but if i want to insert 2 record, it just inserts the first one.
DatabaseHandler
public class DatabaseHandler extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "entrys.db";
private final static int DATABASE_VERSION = 1;
public final static String ENTRY_TABLE = "poolentrys";
public final static String ENTRY_ID = "_id";
public final static String ENTRY_NAME = "name";
public final static String ENTRY_API = "api";
private static final String createDB = "create table "
+ ENTRY_TABLE + "("
+ ENTRY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ ENTRY_NAME + " TEXT NOT NULL, "
+ ENTRY_API + " TEXT NOT NULL);";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(createDB);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+ENTRY_TABLE);
onCreate(db);
}}
DatabaseController
public class DatabaseController {
private DatabaseHandler dbhandler;
private Context ourcontext;
private SQLiteDatabase database;
public DatabaseController(Context c) {
ourcontext = c;
}
public DatabaseController open() throws SQLException {
dbhandler = new DatabaseHandler(ourcontext);
database = dbhandler.getWritableDatabase();
return this;
}
public void close() {
dbhandler.close();
}
//Inserting Data into table
public void insertData(String name, String api) {
ContentValues cv = new ContentValues();
cv.put(DatabaseHandler.ENTRY_NAME, name);
cv.put(DatabaseHandler.ENTRY_API, api);
database.insert(DatabaseHandler.ENTRY_TABLE, null, cv);
}
//some other classes, irrelevant for insert
//...
//...}
addItem
public class addItem extends Activity implements View.OnClickListener {
EditText poolName, poolApi;
Button poolSave;
DatabaseController dbcon;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_additem);
poolName = (EditText) this.findViewById(R.id.poolName);
poolApi = (EditText) this.findViewById(R.id.poolApi);
poolSave = (Button) this.findViewById(R.id.poolSave);
dbcon = new DatabaseController(this);
dbcon.open();
poolSave.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.poolSave:
if(poolName.getText().toString().trim().length()==0||
poolApi.getText().toString().trim().length()==0)
{
Toast.makeText(getApplicationContext(), "Fehler: Alle Felder müssen ausgefüllt sein!",
Toast.LENGTH_LONG).show();
return;
}
String name = poolName.getText().toString();
String api = poolApi.getText().toString();
dbcon.insertData(name, api);
Intent main = new Intent(this, MainActivity.class);
startActivity(main);
break;
default:
break;
}
}}
Just found other people who also had this error, but their solutions didn't helped me.
Aucun commentaire:
Enregistrer un commentaire