У меня есть приложение, в котором мне нужна одна запись данных только один раз.Я выполнил поиск решения и применил его, но снова вставил ту же запись данных.
Мой код выглядит следующим образом:
В классе SqliteHelper (метод Insert):
public boolean insertData(ContactModel contactModel) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(col_0,contactModel.getId());
contentValues.put(col_1,contactModel.getName());
contentValues.put(col_2,contactModel.getNumber());
contentValues.put(col_3,contactModel.getColor());
contentValues.put(col_4,contactModel.getFSize());
// long result =db.insert(Table_name,null,contentValues);
long result = db.insertWithOnConflict(Table_name, null, contentValues,SQLiteDatabase.CONFLICT_REPLACE);
if(result == -1){
return false;
}else{
return true;
}
}
метод в действии для вставки данных:
public void DataAdd(String name,String num,int color,int size){
boolean indata = myhelper.insertData(new ContactModel(name,num,color,size));
if (indata == true) {
Toast.makeText(getApplicationContext(),"DataSave",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplicationContext(),"In Data not True",Toast.LENGTH_SHORT).show();
}
}
Ящик таблицы:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ Table_name +"(Id INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, NUMBER TEXT, COLOR INTEGER, FSIZE INTEGER) ");
}