2016-06-29 6 views
0

Googleマップアプリケーションを作成しています。ユーザーが作成したマーカーのすべての情報を送信する必要があります。しかし、私は後でその活動を開き、データを送って別のボタンを使って活動を開くだけではいけません。どのように私はこの問題に近づくべきですか?ここJava:異なる活動にインテントを送信する

マーカーが作成されたコードであり、他の活動にオーバー送られたが、私は情報を受信して​​いる活動を開始したくない:(

また
@Override 
protected void onActivityResult(int requestCode, int resultCode, 
           Intent data) { 
    if (requestCode == GET_DETAILS) { 
     if (resultCode == RESULT_OK) { 
      List<MarkerOptions> markers = new ArrayList<MarkerOptions>(); 

      String marker_title=data.getStringExtra("title"); 

      MarkerOptions markerOptions = new MarkerOptions() 
        .position(new LatLng(lat, lon)) 
        .title(marker_title); 
      Marker m = mMap.addMarker(markerOptions); 
      markers.add(markerOptions); 

      MarkerOptions[] markersArray = markers.toArray(new MarkerOptions[markers.size()]); 
      Intent intent = new Intent(this, MarkerListActivity.class); 
      intent.putExtra("markers", markersArray); 
      startActivity(intent); 

      mMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(lat, lon))); 

     } 
    } 
} 

、別の事、コード何?

List<MarkerOptions> markers = new ArrayList<MarkerOptions>(); 

が何を私はわからないよ、なぜ2つのデータ構造ではなく、1があるJavaのプログラミングに新たなんだ

答えて

1

私はあなたが何が取得されていませんと思います。この場合はIntentsです。 Intentsは、別のもの(特に)からActivityを開始するために使用されます。あなたが言うように、Activityが開始しようとしているデータが必要になる場合は、Intentで開始されようとしているActivityにデータを渡すことができます。 Intentを介してActivityにデータを送信したいので、そのクラスのすべてのActivityインスタンスがそのデータを取得するようです。そのようには機能しません。あなたはIntentを経由して送信データがそう後でButton経由新しいActivityを開始、Activityのすべてのインスタンスのために「保存」されていない、以前Intentに送信されたデータにアクセスすることはできません。

要するに、Intentの仕組みは、あなたがしようとしているものではないようです。 MarkerSharedPreferenceまたはDatabaseに保存したい場合は、Activityのすべてのインスタンスでデータを取得できます。

+0

あなたの詳細な対応に感謝します。 –

+0

問題ありません。喜んで助けてください。 – Emmanuel

+0

私はこの記事の最後に書いた簡単な質問にあなたは答えてもらえますか?リストマーカー=新しいArrayList (); <----なぜ2つのデータ構造がありますか? <>は何を表していますか?何が出力されますか? –

関連する問題