0

我有一个活动PlaceSearch.java,它也恰好是我的小部件的配置类。我正在开发一个天气小部件,所以我使用FrameLayout的是由一个ImageButton和然后组成的LinearLayout请看这个链接

我想在PlaceSearch.java用户单击. 所以我使用下面的代码来实现它widgethome 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从未真正点击过。如果是这样,请为我提供打开活动的正确方法。

4

1 回答 1

0

傻我只好写了PendingIntent.getActivity(....)。感谢@shoe rat,现在工作正常。对于也尝试从主屏幕打开活动的其他人,请将其添加PendingIntent到基本布局。例如-对我来说是mainLayout

于 2013-07-04T07:27:03.893 回答