我有小型Android应用,但Sqlite数据库很大,表单加载速度很慢。如何加快Listview加载并按名称对其进行排序?
我的代码在这里:
public void nameload(){
ArrayList<String> names = new ArrayList<String>();
db = openOrCreateDatabase(Adatbazis, MODE_PRIVATE, null);
Cursor Namecursor = db.rawQuery("select DISTINCT name from Table WHERE ztr='"+ztrcode+"'", null);
Namecursor.moveToFirst();
String name = "";
while (!Namecursor.isAfterLast()) {
name = "" + Namecursor.getString(Namecursor.getColumnIndex("name"));
names.add(name);
Namecursor.moveToNext();
}
//A tömb elemeinek betöltése a UI-ba
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
names);
namelist.setAdapter(adapter1);
Namecursor.close();
}
感谢您的帮助:))
答案 0 :(得分:0)
永远记住在setAdapter()
之后关闭光标可能会阻止适配器访问使加载变慢的数据。
在Namecursor.close();
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(..)
循环之后