Start activity by clicking on widget
Use this snippet in onUpdate()
method of your widget AppWidgetProvider
class:
@Overridepublic void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetlayout); Intent configIntent = new Intent(context, Activity.class); PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0); remoteViews.setOnClickPendingIntent(R.id.widget, configPendingIntent); appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);}
Here widgetlayout
is name of your widget layout and R.id.widget
is it's parent layout id.
Edit:
Now,I see your code that you added to your question.You would to do:
PendingIntent.getActivity(context, 0, configIntent, 0);
(that start's activity) instead of
PendingIntent.getService(...);
that attempt to starts service.Good luck.
References:
doityourselfandroid.com
Intent inet = new Intent(your_action);inet.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);PendingIntent pIntentNetworkInfo = PendingIntent.getActivity(context, 2, inet, Intent.FLAG_ACTIVITY_NEW_TASK);remoteViews.setOnClickPendingIntent(you_component_when_the_user_pressing_this_activity_should_start, pIntentNetworkInfo);
I don't know about "Creating widget from another widget". This is out of my knowledge but I suggest you to build your own widget.
Apart from that, calling activity from widget should be using PendingIntent
Here is simple example to do it
Intent iSetting = new Intent(this, MyConfig.class);PendingIntent piSetting = PendingIntent.getActivity(this, 0, iSetting, 0);views.setOnClickPendingIntent(R.id.IdComponent, piSetting);