我仍然是这个Android的新东西,但我正在尝试编写一个小部件。我得到了我需要在一个独立应用程序中工作的所有代码,但我现在正试图让它作为一个小部件。但是我在启动联系人选择器意图时遇到了一些问题。
基本上,我想要做的是在创建窗口小部件时启动联系人选择器意图,但是这个简单的代码对我不起作用,我不确定它有什么问题。这是代码片段......
public class WidgetProvider extends AppWidgetProvider
{
....
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{ //User is creating a new widget.
//Select a contact.
int contact_pick = 1;
//Contact Picker
Intent PickContact = new Intent(
Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI
);
startActivityForResult(PickContact, contact_pick);
}
....
}
eclipse只为startactivity行提供以下消息:方法startActivityForResult(Intent,int)未定义类型 WidgetProvider
我在这里做错了什么想法?
答案 0 :(得分:2)
startActivityForResult()
仅适用于Activity
。您无法从AppWidgetProvider
中选择联系人。但是,您可以使用Activity
开始定期startActivity()
,然后可以使用startActivityForResult()
选择联系人。
答案 1 :(得分:0)
首先,有点挑剔:你不应该使用大写的变量,调用你的选择器pickContact,而不是PickContact。
其次,您的消息告诉您未定义的WidgetProvider类型。 WidgetProvider,你的类,扩展AppWidgetProvider,但除非我弄错了,AppWidgetProvider缺少startActivityForResult。因此,消息,你不是从你应该从它调用它的类调用方法...