そのため、ヘルパー クラスを介してアプリを最初に開いたときにビルドされるアプリにデータベースがあり、追加できます (dbfavoritosHelper.insert(favId, favName, favType);ourCursor.requery();Toast. makeText(getApplicationContext(),"El medio a sido a tus favorites!" Agrefav ボタン内,)) 問題なくそこからアイテムを削除しますが、私が達成したいのは、追加ボタンを押して確認する瞬間です同じ favId を持つアイテムが既に存在するため、重複を作成したくないので追加したくないので、そのアイテムを更新したいのですが、これまでのところ、私が持っているコードはここでは機能していませんは:
私の主な活動で
//this is how I call insert
Button Agrefav = (Button) findViewById(R.id.btnFav);
Agrefav.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
if(arrayOfWebData.isEmpty()){
Toast.makeText(getApplicationContext(),
"No hay medio para agregar a favoritos!",
Toast.LENGTH_LONG).show();
}else{
if(!dbfavoritosHelper.find(favId)){
dbfavoritosHelper.insert(favId, favName, favType);
ourCursor.requery();
Toast.makeText(getApplicationContext(),
"El medio a sido a tus favoritos!",
Toast.LENGTH_LONG).show();
}else{
dbfavoritosHelper.update(favId, favId, favName, favType);
ourCursor.requery();
Toast.makeText(getApplicationContext(),
"El medio se a actualizado en tus favoritos!",
Toast.LENGTH_LONG).show();
}
}
}});
//this is how I call delete
dbfavoritosHelper.delete(delId);
delId=null;
ourCursor.requery();
私のヘルパーで:
//this is how I insert items to table
public void insert(String mId, String mName, String mType) {
ContentValues cv=new ContentValues();
cv.put("medioId", mId);
cv.put("medioName", mName);
cv.put("medioType", mType);
getWritableDatabase().insert("favorito", null, cv);
}
//this is how I'm trying to find if an item already exists in db, but not working
public boolean find(String mId){
try {
getReadableDatabase().rawQuery("SELECT * FROM favorito WHERE favorito.medioId='"+mId+"';", null);
return true;
} catch (SQLException sqle){
return false;
}
}
//this is how I update items
public void update(String id, String mId, String mName, String mType){
ContentValues cv=new ContentValues();
String[] args={id};
cv.put("medioId", mId);
cv.put("medioName", mName);
cv.put("medioType", mType);
getWritableDatabase().update("favorito", cv, "_id=?", args);
}
//this is how I delete them
public void delete(String id){
getWritableDatabase().delete("favorito", "_id=?", new String[] {id});
}
任意の推奨事項を歓迎します, ありがとう