java-如何在列表视图中对电话联系人进行排序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何在列表视图中对电话联系人进行排序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2215字,纯文字阅读大概需要4分钟。
内容图文
![java-如何在列表视图中对电话联系人进行排序?](/upload/InfoBanner/zyjiaocheng/677/c6b396f0cc71475ba2c326813c02cb16.jpg)
我已经根据本教程创建了一个列表视图:
http://www.vogella.com/articles/AndroidListView/article.html
在该链接中,我已经实现了
13>在ListView中选择多个项目
我的列表视图运行正常.我通过使用以下代码用电话联系人填充列表视图来定制列表视图:
private List<Model> getModel()
{
List<Model> list = new ArrayList<Model>();
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0)
{
while (cur.moveToNext())
{
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
// This inner cursor is for contacts that have multiple numbers.
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, null);
while (pCur.moveToNext())
{
list.add(get(name));
}
pCur.close();
}
}
}
cur.close();
return list;
}
现在,将显示联系人的姓名,但不会对其进行排序.我该如何分类?
请帮助!
提前致谢!
解决方法:
让我们看一下这个声明.
List<Model> list = new ArrayList<Model>();
这是一个ArrayList对象,已参数化为Model类型.现在,在创建的Model类中,您可以简单地使用Comparable接口.为此,您添加:
implements Comparable<Model>
到Model类标题的末尾.
然后,您将不得不为名为compareTo的方法添加实现.这就是您比较事物的方式.
添加此实现后,可以调用Collections.sort()并将其传递给ArrayList对象list.这将为您排序列表.
我想再深入一点
因此,首先要做的是转到您的Model类,该类目前具有一个类似于以下内容的标头:
public class Model
您想要做的就是将其更改为:
public class Model implements Comparable<Model>
这是什么意思?
好的,这意味着您已经同意为Comparable接口提供代码.现在,您需要在Model类中编写一个compareTo方法.就像是:
@Override
public int compareTo(Object arg0) {
// At this point, you put your comparison code in.
}
您的比较码
如果要按字母顺序对它们进行排序,则可以使用String对象中存在的compareTo方法.首先,需要将arg0转换为可以使用的String对象:
String otherName = ((Member)arg0).getName();
然后,您可以简单地返回String compareTo方法的值:
return otherName.compareTo(this.name);
内容总结
以上是互联网集市为您收集整理的java-如何在列表视图中对电话联系人进行排序?全部内容,希望文章能够帮你解决java-如何在列表视图中对电话联系人进行排序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。