我正在构建一个支持ViewFlipper
的集合小部件,并且在遵循adding behavior to individual items上的Android文档时遇到了障碍。在ViewFlipper小部件中的单个元素上设置点击监听器
我要创建两个箭头,移动ViewFlipper
到以前的和未来的看法,如本样机:
在我WidgetService
的getViewAt()
方法,我有以下代码在意图创建一个填充:
final Intent fillInIntent = new Intent();
final Bundle bundle = new Bundle();
bundle.putInt(WidgetProvider.EXTRA_ID, mWidgetItems.get(position));
fillInIntent.putExtras(bundle);
remoteViews.setOnClickFillInIntent(R.id.btn_widget_next, fillInIntent);
remoteViews.setOnClickFillInIntent(R.id.btn_widget_previous, fillInIntent);
然后在我的WidgetProvider
我有这样的:
// Adding collection list item handler
final Intent onItemClick = new Intent(context, WidgetProvider.class);
onItemClick.setAction(NAVIGATE);
onItemClick.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id)
onItemClick.setData(Uri.parse(onItemClick.toUri(Intent.URI_INTENT_SCHEME)));
final PendingIntent onClickPendingIntent = PendingIntent
.getBroadcast(context, id, onItemClick,
PendingIntent.FLAG_UPDATE_CURRENT);
rv.setPendingIntentTemplate(R.id.widget_view_flipper, onClickPendingIntent);
让我困惑的是,我是否应该在每个按钮上拨打setOnClickFillInIntent
。如果我确定每个按钮的意图,我需要一种方法来确定我的WidgetProvider
的onUpdate
方法(我现在拥有的是ViewFlipper
中的视图位置)中单击了哪个按钮。我不能找到一个Widget的例子,不幸的是,它使用点击监听器进行多个动作。
只是想给一些反馈:您链接到说:“你RemoteViewsFactory必须设置文本填空题上的collection.This每个项目的意图,能够区分给定物品的单独点击动作。“所以我认为你不能在按钮上设置填充意图(它们是项目的子项),就像这样。 – 0X0nosugar
@ 0X0nosugar感谢您的采访,从文档看来您似乎是对的。但是,我确实有一个使用带有多个按钮的ViewFlipper的小部件示例。如果只有我可以达到他们的源代码峰值:( –