当我在Android 1.6中使用以下代码时,它会同时显示电话号码和 联系人但是当我使用Android 2.2时,它不会显示电话号码 显示名称。
String columns[] = new String[] { People.NAME, People.NUMBER, People._ID };
int tocols[] = new int[] {android.R.id.text1, android.R.id.text2};
Cursor c = managedQuery(People.CONTENT_URI, columns, null, null, null);
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2, c, columns, tocols);
setListAdapter(sca);
答案 0 :(得分:0)
Contacts.People来自旧的Contacts api(直到1.6),现已弃用。如果你想确保你的数据在android 2.0+中返回正确的值,你应该切换到开发者网站上详述的ContactsContract api。
http://developer.android.com/resources/articles/contacts.html
您也可以封装代码以使用这两个版本,并且在android开发人员的网站上也有一些如何执行此操作的示例。
编辑: 我发现了我之前提到过的一篇博客文章,它关于触摸式监听器,但基于API级别拆分代码的原则仍然合理,应该可以很好地实现跨不同版本的android的联系人提供程序代码。
由于我实际上无法在一个帖子中发布两个链接(代表太低),请查看2010年7月在Android开发者博客上的“如何获得你的蛋糕并吃掉它”