2016-06-29 2 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>(); 

할을 나는 확실 해요 왜 두 데이터 구조가 아닌 하나가 자바 프로그래밍에 새로 온 사람

답변

1

난 당신이 무엇을가지고 있지 않습니다 생각합니다. 이 경우는 Intents입니다. Intents은 (다른 것들 중에서) 다른 하나에서 Activity을 시작하는 데 사용됩니다. 데이터가 Activity이 시작될 때 필요하면 Intent에 시작하려는 Activity에 데이터를 전달할 수 있습니다. 제게는 Intent을 통해 Activity으로 데이터를 보내려고하므로 해당 클래스의 모든 Activity 인스턴스가 해당 데이터를 가져옵니다. 그런 식으로 작동하지 않습니다. 당신이 Intent를 통해 전송 된 데이터가 너무 나중에에 Button를 통해 새로운Activity을 시작하는 Activity의 모든 인스턴스에 대해 "저장"되지 않으며, 이전 Intent에 전송 된 데이터에 액세스 할 수 없습니다.

간단히 말해서, Intent 메커니즘은 사용자가하려는 것을 원하지 않는 것 같습니다. MarkerSharedPreference 또는 Database에 유지되도록하려는 경우 모든 Activity의 인스턴스가 데이터를 가져올 수 있습니다.

+0

아, 이제 답변을 드리겠습니다. –

+0

문제 없습니다. 기꺼이 도와주세요. – Emmanuel

+0

이 게시물의 끝에 쓴 빠른 질문에 대답해도 괜찮습니까? 목록 표시 자 = 새 ArrayList (); <---- 두 개의 데이터 구조가있는 이유는 무엇입니까? <>는 무엇을 나타내는가? 이 출력은 무엇입니까? –

관련 문제