投稿日: 2009 年 11 月 30 日 (月) 午後 5:08 投稿件名: 単純な問題とインテント エクストラ こんにちは。
ホーム画面用のアプリウィジェットに取り組んでいます。ユーザーがウィジェットをタップすると、ウィジェットに表示されるデータが変更されるようにしようとしています。ただし、ウィジェットの複数のインスタンスを異なるデータで開くことも許可しています。したがって、更新するウィジェットをメソッドに伝えるために、データを変更するために起動されるインテントにエクストラを追加しています。
これが私が持っている意図です: Java:
Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.putExtra("widget_id", currentWidgetId);
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);
これはウィジェット ID を正しく保存しますが、データ変更メソッドが呼び出されると、インテントから読み取られるウィジェット ID は最初のウィジェット インスタンスになります。つまり、すべてのウィジェットを生成する for ループがあり、どのウィジェットをタップしても、受信されるウィジェット ID は常に最初のウィジェットの最初のウィジェット ID です。
誰でもこれを解決する方法について考えがありますか? うまくいけば、私はそれをあまり悪く言いませんでした。
読んでくれてありがとう、トニー