我写的就是联系方式。我添加了人们的信息(姓名,电话,邮件),我可以在listView
中看到它们。添加列表的人员具有特定的ID号。我想使用ID号更新他们的信息。但是信息没有更新。它们仍旧版本。
这些是DbHelper中的更新和阅读信息方法:
public List<Kontak> kisiOku(){
SQLiteDatabase db = this.getReadableDatabase();
List<Kontak> list = new ArrayList<>();
String[] kolon = {"id","isim","tel","mail"};
Cursor c = db.query("kisi",kolon,null,null,null,null,null);
c.moveToFirst();
while (!c.isAfterLast()){
int id = c.getInt(0);
String isim = c.getString(1);
String tel = c.getString(2);
String mail = c.getString(3);
Kontak k = new Kontak(isim,tel,mail);
k.setId(id);
list.add(k);
c.moveToNext();
}
c.close();
db.close();
return list;
}
public void kisiDuzelt(String isim,String tel,String mail){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues val = new ContentValues();
val.put("isim",isim);
val.put("tel",tel);
val.put("mail",mail);
Kontak k = new Kontak(isim, tel, mail);
db.update("kisi", val, "id = "+k.getId(),null);
}
使用更新方法:
public void duzelt(View v){
String isim = editName1.getText().toString();
String tel = editTel1.getText().toString();
String mail = editMail1.getText().toString();
dbHelper.kisiDuzelt(isim,tel,mail);
new Kontak(isim,tel,mail).getId();
Toast.makeText(getApplicationContext(),"DÜZELTİLDİ",Toast.LENGTH_LONG).show();
}
这是适配器部分:
dbHelper = new DbHelper(this);
list = dbHelper.kisiOku();
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
答案 0 :(得分:1)
Kontak k = new Kontak(isim, tel, mail);
这不会初始化Kontak对象中的id字段,getId()
稍后会返回默认值,例如0.这与数据库中的任何内容都不匹配,并且没有行更新。
您必须传递从数据库中检索到的ID,或者那些填充了id以匹配数据库中的值的Kontak对象。