赞
踩
我正在研究
android项目,并正在使用从SQLite数据库中检索数据的ListView.
我正在使用ArrayList创建数据集,然后将此ArrayList添加到ArrayAdapter中.
当从数据库中检索数据时,我告诉SQLite进行排序,以便在将其添加到ListView时,所有内容都按字母顺序排列.在某些时候,信息将动态添加到ListView,而不需要再次从数据库中重新获取所有内容.但是,我想按字母顺序保留所有内容.
我该怎么做,我是否对DataSet进行排序,然后调用notifyDataSet Changes或直接在ArrayAdapter上进行排序.我已经考虑在ArrayAdapter上执行排序,但是这需要一个使用Comparator的参数但不确定它是什么,并且找不到任何可能对我想要实现的任何帮助的工作示例.
下面是填充数组并设置列表适配器的代码
ArrayList passwords = managePasswordList.getPasswordList();
if (passwords != null && passwords.size() > 0)
{
passwordArrayAdapter = new ArrayAdapter(getActivity().getApplicationContext(),
android.R.layout.simple_list_item_activated_1, passwords);
setListAdapter(passwordArrayAdapter);
myListView.setTextFilterEnabled(true);
txtNoRecords.setVisibility(View.GONE);
}
else
{
txtNoRecords.setVisibility(View.VISIBLE);
}
然后,我将数据添加到数据集并使用以下内容刷新列表视图
String company = Encryption.decrypt(passwords.get(i).company);
String username = Encryption.decrypt(passwords.get(i).username);
details = Html.fromHtml(company + "
" + "" + username + "");
passwords.add(细节);
passwordArrayAdapter.notifyDataSetChanged();
感谢您的任何帮助,您可以提供.
更新1
我已经尝试过做Nick Bradbury的建议,但我对比较器有问题.我有以下代码,但我不知道从哪里开始.
SQLiteDatabase myDb = null;
Cursor cursor = null;
ArrayList passwords = new ArrayList();
try
{
myDb = context.openOrCreateDatabase("PasswordManager", Context.MODE_PRIVATE, null);
cursor = myDb.rawQuery("SELECT * FROM password ASC", null);
while (cursor.moveToNext())
{
final String company = Encryption.decrypt(cursor.getString(2));
final String username = Encryption.decrypt(cursor.getString(4));
Spanned details = Html.fromHtml(company + "
" + "" + username + "");
passwords.add(details);
Collections.sort(passwords, new Comparator() {
public int compare(Spanned lhs, Spanned rhs) {
return 0;
}
});
}
}
catch (SQLiteException ex)
{
common.showBasicAlertDialog("Unfortunately something has gone wrong.\n\nWe will fix this as soon as we can", false);
Log.e("Database Error", ex.toString());
return null;
}
在return语句中我不知道该怎么做,我已经尝试返回lhs.compareTo但是lhs和rhs变量没有compareTo函数,所以我不知道该怎么做.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。