我正在構建一個支持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的小部件示例。如果只有我可以達到他們的源代碼峯值:( –