android/java はまだ新しく、バンドル、メッセージング、ハンドラーについてかなり混乱しています (私の用語が正しくない場合は申し訳ありません)。複数のダイアログを表示できるカスタム ダイアログ クラスがあります。リスナーは、ハンドラーを介してメインの呼び出しアクティビティにデータを返すように設定されています。
返されるデータは、1 つまたは複数のアイテムである可能性があります。私のテストでは、2 つのアイテムを返送しようとしています。私はこれをいくつかの方法で試しました。私は常に単一のアイテムを送信し、ハンドラーにそれを受信して抽出させることに成功しています。複数の項目を実行すると失敗します (方法が少し異なります)。
バンドルに 2 つのアイテムを入れてメッセージを 1 つだけ送信すると、ハンドラーは最初のバンドル アイテムではなく、2 番目のバンドル アイテムのみを受信するように見えます。
1 つのアイテムをバンドルに入れて送信し、バンドルをクリアしてから、2 番目のアイテムをバンドルに入れて送信すると、ハンドラーによって何も受信されないようで、アクティビティがハングします。
msg.toString() の出力も使用しましたが、2 つのメッセージが送信された場合、2 番目の「いつ」が 0 であることに注意してください。それが問題かどうかはわかりません。
また、msg.sendToTarget と handler.sendMessage(msg) を使用してメッセージを渡してみましたが、どちらを使用しても問題ないようです。
コードの抜粋と出力: http://pastebin.com/xtUatEVu
私は残しましたが、試した他のことのいくつかをコメントアウトしました。私は自分が間違っていることを本当に理解していません。