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) {

}

連絡先を選択すると、ウィジェットで結果を取得できることが必要です

4

3 に答える 3

0

を介して2番目のアクティビティからデータを返したとすると、メソッドIntent.putExtra()を呼び出すことで、渡したものすべてにアクセスできます。data.getExtras()onActivityResult

こちらのチュートリアルを参照してください

于 2013-03-04T07:10:08.360 に答える
0

AppWidgetProvider にメソッド onActivityResult がないため、これは誤りです。

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

    }

アクティビティから結果を取得したい場合は、send Broadcast を使用して appwidget ビューを更新できます

于 2013-03-04T07:38:03.680 に答える