2

コレクション付きのウィジェットがあります (これは重要です! )。次のようになります。

Android ウィジェットのスクリーンショット

私のコードは、公式の Android ドキュメントであるAndroid App Widgetsに基づいています。

したがって、ウィジェットの場合、StackView コレクション内のカスタム オブジェクトでコレクションを使用します。このコレクションは、StackRemoteViewsFactory によって処理されます (RemoteViewsService.RemoteViewsFactory を実装します)。ご覧のとおり、各アイテムには 3 つの ImageButtons と 1 つの TextView があります。

RemoteView アイテム全体に onClick 動作を追加する方法を知っています。これは公式ドキュメントに記載されています。

しかし、ビュー (ボタンとテキストビュー) ごとに 4 つの onClick 動作が必要です。

私の質問: これは、RemoteView コレクションを使用してウィジェット内の StackView アイテムごとに異なるビュー onClicks を持つことは可能ですか?

今、私はこれを行う方法がわかりません:(


アップデート:

この質問のように、 onClicks に似たものが必要です: Android Widget で複数のボタンのクリックを処理しています。しかし、その質問からの解決策は、ウィジェットの実装の違いにより、RemoteViews のコレクションを持つウィジェットでは機能しません。

4

2 に答える 2

1

StackView ウィジェットのサンプル コードを見たことがあれば、プロバイダー クラスとサービス クラスがあることをご存知でしょう。サービスクラスで、stackview レイアウトの各 id に setOnClickFillInIntent を「コマンド ワード」を含む Intent で追加してみてください。プロバイダー クラスで setPendingIntentTemplate をサンプル コードとして設定します。ここが重要なのですが、プロバイダクラスにはOnReceive()があります。setPendingIntentTemplate は、Provider クラスで設定した特定のアクションと、サービス クラスからlayour の各 id に設定された「コマンド ワード」の 2 つを含む Intent を送信します。これで、ユーザーが Stack View ウィジェットからクリックしたボタンがわかるようになりました。そのためのヒントがさらに必要な場合は、サンプル コードを追加します。

于 2012-08-27T13:08:37.453 に答える