used ViewFlipper
to implement mentioned behavior.
following is the code of extended AppWidgetProvider
public static final String TRIGGER = "trigger";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] allAppWidgetIds) {
for (int appWidgetId : allAppWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.layout_widget);
Intent clickIntent = new Intent(context, CueWidgetProvider.class);
clickIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
clickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
clickIntent.putExtra(CueWidgetProvider.TRIGGER,
R.id.app_wid_fltr_next_btn);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.app_wid_fltr_next_btn,
pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Bundle extras = intent.getExtras();
Integer id = (Integer) (extras == null ? null : extras.get(TRIGGER));
if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)
&& id != null) {
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
onNavigate(context, widgetId, id);
} else {
super.onReceive(context, intent);
}
}
protected void onNavigate(Context context, Integer widgetId, Integer id) {
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews root = new RemoteViews(context.getPackageName(),
R.layout.layout_widget);
if (id == R.id.app_wid_fltr_next_btn) {
root.showNext(R.id.app_wid_fltr_flipper);
}
appWidgetManager.updateAppWidget(widgetId, root);
}
referred answer to this question.