更新了我的代码。我退出活动时会发生我的问题。 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;
}
任何建议都值得赞赏。谢谢
答案 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)