我在ListView中看不到列表项

时间:2018-02-05 17:33:47

标签: java android sqlite listview sqliteopenhelper

我正在写简单的手机联系人。我添加了人们的姓名,电话,电子邮件。只有姓名必须显示在listView中。我可以看到列表行,但看不到行上的名称。它们是看不见的。

此方法显示了人们的信息:

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()){
        String isim = c.getString(c.getColumnIndex("isim"));
        Kontak knt = new Kontak();
        knt.setIsim(isim);
        list.add(knt);
        c.moveToNext();
    }
    c.close();
    db.close();
    return list;
}

这是我的数据类:

public class Kontak {

int id;
String isim;
String tel;
String mail;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getIsim() {
    return isim;
}

public void setIsim(String isim) {
    this.isim = isim;
}

public String getTel() {
    return tel;
}

public void setTel(String tel) {
    this.tel = tel;
}

public String getMail() {
    return mail;
}

public void setMail(String mail) {
    this.mail = mail;
}

public String toString(){return isim;}}

这是适配器部分:

    k = new Kontak();
    dbHelper = new DbHelper(this);
    list = dbHelper.kisiOku();
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
    listView.setAdapter(adapter);

1 个答案:

答案 0 :(得分:-1)

在您的代码段中,您正在从SQLite查询并更新isim对象中的Kontak(我假设为名称字段)。相同的对象被附加到列表中。其他字段(如mailphone)未在Kontak对象中更新。

此外,toString类的Kontak方法仅返回isim。考虑将邮件和电话号码详细信息添加到输出字符串。