【问题标题】:android widget on click event点击事件上的android小部件
【发布时间】:2011-07-17 21:45:36
【问题描述】:

我已经在 android 中创建了小部件并且它成功地工作了,但是现在我想在小部件的点击事件上使用,以便我可以从中打开新的活动。

帮帮我

【问题讨论】:

标签: android android-widget


【解决方案1】:
 @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                     int[] appWidgetIds) {
    for (int i = 0; i < appWidgetIds.length; i++) {
        int appWidgetId = appWidgetIds[i];

        Intent intent = new Intent(context, TaskManagerActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
        views.setOnClickPendingIntent(R.id.widget_layout, pendingIntent);
        appWidgetManager.updateAppWidget(appWidgetId, views);
    }
}

在 widget.xml 中,我有根元素 LinearLayout,ID 为 widget_layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/widget_layout"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:paddingTop="10dip"
          android:paddingLeft="10dip"
          android:orientation="vertical">

【讨论】:

  • 嗨@xtem,我在检测小部件ID 时遇到问题。我在主屏幕上创建了 3 个小部件,我想分别更改每个小部件的主题。因此,当我单击小部件时,我的 Configuration 类被打开并且 onUpdate() 每个我的小部件都更新了。可以分开做吗?
  • 对 requestCode 使用 0 可能会给您带来麻烦:stackoverflow.com/a/16800592/5027971
【解决方案2】:

我用过这个:

// Create an Intent to launch ExampleActivity
        Intent intent = new Intent(context, Mainpage.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
        remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent);

【讨论】:

  • 是的,但是单击小部件时将调用的方法在哪里?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-25
  • 2011-03-26
  • 2019-07-05
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
相关资源
最近更新 更多