从主屏幕打开小组件配置

时间:2013-07-04 07:06:30

标签: android android-intent android-widget android-pendingintent

我有一个活动PlaceSearch.java,它也恰好是我的Widget的Configure类。我正在开发一个天气小工具,所以我使用的是FrameLayout,其中包含ImageButtonLinearLayoutPlease see this link

我想在用户点击PlaceSearch.java上的widget时打开home screen。所以我使用了以下代码来实现它

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    // TODO Auto-generated method stub
    super.onUpdate(context, appWidgetManager, appWidgetIds);
    System.out.println("entering onUpdate");
    context.startService(new Intent(context, TimeService.class));
    for(int id: appWidgetIds){
        System.out.println(id);
    RemoteViews view = new RemoteViews(context.getPackageName(),R.layout.activity_main);
    Intent intent = new Intent(context,Preferences.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pi =PendingIntent.getBroadcast(context, 0, intent, 0);
    view.setOnClickPendingIntent(R.id.ibmainBackground, pi);
    appWidgetManager.updateAppWidget(id, view);
    }
}

但这可能不起作用,因为FrameLayout导致LinearLayout ImageButton重叠,因此ImageButton实际上从未被点击过。如果是这样,请提供正确的方式来打开活动。

1 个答案:

答案 0 :(得分:0)

愚蠢的我不得不写PendingIntent.getActivity(....)。 @shoe rat,现在工作正常。对于同时尝试从主屏幕打开活动的其他人,请将PendingIntent添加到基本布局。因为对我而言,它是mainLayout