抽象データソースで提供され、そのソースからデータを抽出し、データをListView
に提示して、選択したアイテムを戻す汎用の「セレクタ」アクティビティが必要です呼び出しアクティビティへ。非常に類似した何かRingtonePickerActivity
。アクティビティ間で 'データソース'を渡す
私が理解できないことは、あるアクティビティから別のアクティビティに汎用データソースを渡す方法です。今まで活動の間でデータを共有するという点で私が見てきたのは、データをIntent
のエクストラに通すことです。しかし、実際のデータを提供したくないので、ここで私にとってはうまくいかないようです。抽象的なデータソースへの参照を渡したいのですが(Cursor
と違って)照会することができます。
私が強調したい点は、選択者が実際のデータソースに無関係であることを要望しています。つまり、抽象データソースはgetNextItem
、getItemName
、getItemValue
のようなメソッドを提供します。私が考えることのできる最高のモデルは、カーソルまたは反復子です - 純粋に抽象的なデータセットを反復するメカニズムです。
アプリケーションのすべてのアクティビティが同じプロセスでホストされるため、これは可能でしょうか?一つのことは、アプリケーション内にグローバルデータソース変数を持つことを望んでいません。その理由の1つは、複数のデータソースを持つ複数のチューザアクティビティを実行するということです。開始時に開始されたアクティビティにデータを提供します。
それは可能ですか?私はひどく間違っていますか?より良い方法がありますか?
十分明確でない場合は申し訳ありません。要点は、どこから来たのかわからなくてもデータを取得するための 'Chooser'アクティビティが欲しいということです。 Cursorはおそらく良い例です - 私は、アクティビティが何も知らずにソースからデータを抽出できるようにしたいと考えています。もう1つのモデルは抽象イテレータかもしれません - あなたが次のアイテムを求めることができるもの。 – SergeyA
@SergeyA:「アクティビティが何も知らなくてもソースからデータを抽出できるようにしたい」 - うん、「Cursor」はそのようには機能しません。 'Cursor' *はデータであり、あなたは実際のデータを渡すことを望まないと述べています。 'Cursor'を取得するには、それを取得する方法を知る必要があります。これは、データベース名とクエリ、または 'ContentProvider'' Uriとクエリである可能性があります。 「別のモデルは、抽象イテレータであるかもしれません。次のアイテムを求めることができます。つまり、データを渡すときに、イテレータの動作方法ではありません。 – CommonsWare
私は明確にするために質問を編集しようとしました。 – SergeyA