当我尝试从SQLite数据库将数据加载到我的ListView
时,每个项目都是重复的。在执行时显示重复值的列表视图
我在检查Cursor
时检查了我的数据库值:其中没有冗余数据。但是当我尝试在ListView
中显示时,我会得到重复的条目。我尝试了本节中的其他问题,但没有任何办法可以解决我的问题。我知道散列集可以减少冗余数据。但我不知道如何使用它。
这里是我的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.distance);
list = (ListView) findViewById(R.id.list);
openAndQueryDatabase();
displayResultList();
}
private void displayResultList() {
String[] fromwhere = { "code","name" };
int[] viewswhere = { R.id.id,R.id.name};
ADAhere = new SimpleAdapter(Distance.this, datas,
R.layout.simple_list_row, fromwhere, viewswhere);
list.setAdapter(ADAhere);
list.setOnItemClickListener(this);
}
private void openAndQueryDatabase() {
try {
datas = new ArrayList<Map<String, String>>();
DatabaseHelper dbHelper = new DatabaseHelper(this.getApplicationContext());
newDB = dbHelper.getWritableDatabase();
Cursor c = newDB.rawQuery("select distinct cust_code,cust_name from customer", null);
Log.v("detailss", c.toString());
while (c.moveToNext()){
HashMap<String, String> datanums = new HashMap<String, String>();
String custcode = c.getString(c.getColumnIndex("cust_code"));
datanums.put("code", custcode);
datas.add(datanums);
String name = c.getString(c.getColumnIndex("cust_name"));
datanums.put("name", name);
datas.add(datanums);
}
}
catch (SQLiteException se) {
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
}
}
每个数据库行(=一对代码和名称)真的有两个相同的行吗? – 0X0nosugar
@ 0X0nosugar在数据库中不存在重复的值。 – Bivin