-3

リストとマップに基づいて Android アプリを開発しています。

リストが読み込まれると、Web サービスからデータを取得します。これは、マップにマーカーを追加するために使用するのと同じデータです。

データの再ロードを回避するにはどうすればよいですか?

ありがとう。

編集:リスト用とマップ用の2つのフラグメントでABSタブコントロールを使用していることを忘れていました。タブ コントロール アクティビティにデータを保持し、フラグメントと共有したいと考えています。

フラグメント内の親アクティビティからデータを取得する方法はありますか? そして、大量のデータの場合、コンテンツをSQLに書き込む方が良いですか?

4

3 に答える 3

1

データをインテント エクストラとして渡し、他のアクティビティで取得できます。

Bundle extras = getIntent().getExtras(); 
String data;

if (extras != null) {
    data = extras.getString("key");
    //use your data
}

データがインテント エクストラを介して渡すことができないある種のオブジェクトである場合、アプリケーション クラスを拡張するシングルトンを作成できます。

于 2013-03-28T10:48:33.890 に答える
0

まず、すべてのモデル クラスが Serializable を実装する必要があるため、ストア データを使用してモデル全体を別のアクティビティに送信できます。

その後、最初の活動の後

インテント.putExtra(「モデル」、commanModelList);

その後、2番目のアクティビティでこのインテントを取得します

commanModelList = (ArrayList<CommanModel>) getIntent().getSerializableExtra("model");

ストア データで ur commandModelList を使用します。

于 2013-03-28T10:55:27.600 に答える
0

特定のタイプ (Integer、String...) の ArrayList をインテント エクストラとして追加できます (例: public Intent putIntegerArrayListExtra (String name, ArrayList<Integer> value)Intent クラス)。

これらが適切でない場合は、Application クラスをサブクラス化し、getter/setter を使用してその中に List を格納できます。Application オブジェクトは、使用するすべてのアクティビティから利用できますgetApplication()(その後、独自のアプリケーション サブタイプにキャストできます)。

于 2013-03-28T11:00:04.183 に答える