Android Studio ListView没有填充现有的listView项目,这些项目保存在SQlite中

时间:2018-07-27 03:47:09

标签: android listview

更新了我的代码。我退出活动时会发生我的问题。 Listview项目丢失。我检查了Sqlite数据库并保存了所有项目,只是在重新启动活动时不再出现在listView上。

MainActivity

private ListView lst;
private CustomeAdapter cv;
private EditText nameEd, middleEd, lastEd;
private ArrayList<People> peopleArrayList;
private DataHelper myData;

peopleArrayList = new ArrayList<>();

 OnCreate.....

 public void addPerosn(View view) {

    String myName = nameed.getText().toString();
    String myMiddle = middleed.getText().toString();
    String myLast = lasted.getText().toString();


    boolean insert = myData.addData(myName, myMiddle, myLast);

    if (insert == true) {
        peopleArrayList.add(new People(myName, myMiddle, myLast));
        cv = new CustomeAdapter(this, peopleArrayList);
        lst.setAdapter(cv);
        nameed.setText("");
        middleed.setText("");
        lasted.setText("");

    } else {
        Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
    }

}

}

我要调用“全部显示”的DataHelper方法

 public Cursor showData(){
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
    return data;
}

任何建议都值得赞赏。谢谢

1 个答案:

答案 0 :(得分:0)

确保您已覆盖getCount并返回正确的计数。

@Override
public int getCount() {
    return items.length;
}

除了上述解决方案之外,我建议您以正确的方式进行操作

a)创建一个模型/ pojo类,例如Person,它将具有firstName,lastName和middleName

b)创建人员的数据集,即人员列表

c)在适配器类中创建一个方法addPerson,并在需要向列表中添加新的Person数据时调用。 addPerson方法还将通过调用notifyDataSetChanged

刷新适配器。

d)在活动中仅创建适配器对象一次,稍后使用它的使用方法说adapter.addPerson(person)