我正在创建一个包含一些联系信息的 Android Widget
我发现 getContentResolver() 方法只存在于 Activity 类中,而不存在于 AppWidgetProvider 类中。
如何查询小部件的内容?
像这样:
光标人 = getContentResolver().query(SOME QUERY);
更新:
<pre>@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
String people = getContacts(context);
// Do something with people...
}
private String getContacts(Context context)
{
String peopleStr = "";
String[] projection = new String[] { ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME };
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" + ("1") + "'";
Cursor people = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, projection, selection, null, sortOrder);
while(people.moveToNext())
{
int nameFieldColumnIndex = people.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
peopleStr += people.getString(nameFieldColumnIndex) + "\n";
}
people.close();
return peopleStr;
}
</pre>
最佳答案
getContentResolver() 实际上定义在Context 中类(class)。这意味着,可以通过在 appwidgetprovider.onupdate() 和那些相关方法中传递的上下文来调用它。
关于android - 从 Android 小部件查询内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076624/