2013-03-04 43 views
0

我需要在appwidget上使用onactivityresult,但我该如何使用它?它不叫appwidgetprovider可以实现onactivityresult如何使用它?

公共类MainActivity扩展AppWidgetProvider实现 OnActivityResultListener上下文上下文{ }

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 
    super.onUpdate(context, appWidgetManager, appWidgetIds); 
    this.context = context; 
    for (int i = 0; i < appWidgetIds.length; i++) { 
     int appWidgetId = appWidgetIds[i]; 
     Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
     intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
     PendingIntent pending = PendingIntent.getActivity(context, 0, intent, PendingIntent.PARCELABLE_WRITE_RETURN_VALUE); 
     RemoteViews views = new RemoteViews(context.getPackageName(), 
       R.layout.activity_main); 

     views.setOnClickPendingIntent(R.id.imageButton1, pending); 
     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 

} 
@Override 
public void onReceive(Context context, Intent intent) { 
    super.onReceive(context, intent); 
} 

@Override 
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {} 
+0

此代码中没有'startActivityForResult()'。 – 2013-03-04 12:58:03

回答

0

onActivityResult()仅适用于Activity及其子类。这是因为startActivityForResult()仅适用于Activity及其子类。

+0

那么为什么可以阻止呢? – HiTaX 2013-03-04 13:01:35

+0

@ user2130760:你不能。你的代码显然不会编译。除了'@ Override'将会失败之外,你正在定义一个返回'boolean'的方法,但是你缺少一个'return'语句,这样也会引发一个编译错误。 – CommonsWare 2013-03-04 13:04:09

+0

所以如何我可以使用小部件上的手机联系人 如何我可以在小部件中使用联系人号码与我的代码一样的活动 – HiTaX 2013-03-04 13:08:07