2013-03-04 125 views
0

我需要使用插件onActivityResult這次發射活動從小部件啓動的活動中獲取結果。

public class MainActivity extends AppWidgetProvider implements 
    OnActivityResultListener { 
Context context; 

@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, 1); 
     RemoteViews views = new RemoteViews(context.getPackageName(), 
       R.layout.activity_main); 

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

} 

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

} 

我需要的是,當我選擇能得到導致在小部件

回答

0

假設你通過Intent.putExtra(),您可以通過數據從第二活性背接觸通過在您的onActivityResult方法中調用data.getExtras()訪問您所傳遞的任何內容。

參見教程here.

0

這是錯誤的,由於具有的AppWidgetProvider不是方法onActivityResult。

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

    } 

如果你想從一個活動造成的,您可以使用發送廣播更新appwidget意見

1

在你的清單,你appwidget的廣播添加一個新的意圖過濾器,並添加一個的personnal行動它就像「GET_RESULT_FROM_ACTIVITY」,然後啓動你想要的結果的活動。當你完成你的代碼時,在這個活動中調用sendBroadcast(your_intent)方法,其目的是讓你放置你的額外內容,並在其上設置你的動作「GET_RESULT_FROM_ACTIVITY」。在appwidget的onReceive()方法中,檢查intent.getAction()。equals(「GET_RESULT_FROM_ACTIVITY」)是否在if語句中執行。

+0

最佳解決方案!謝謝!! :) – user3449772 2014-12-30 01:42:27

相關問題