28

I have created widget in android and it successfully works, but now I want to use on click event of widget so that I can open new activity from that.

Help me

3

2 Answers 2

43
 @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);
    }
}

In widget.xml I have root element LinearLayout with 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">
Sign up to request clarification or add additional context in comments.

2 Comments

Hi @xtem, I am facing problem in detecting widget id. I created 3 widgets on my home screen and I want to change each one's theme separately. So when I do click on widget my Configuration class is opened and onUpdate() each my widgets updated. Can I do it separately?
Using 0 for the requestCode might get you in trouble: stackoverflow.com/a/16800592/5027971
9

I used this:

// 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);

1 Comment

Yeah, but where is the method which will be called when the widget is clicked?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.