2016-07-20 11 views
-2

Bitte helfen Sie mir, Ich möchte Breiten- und Längengradkoordinaten von dieser Aktivität zu einer anderen Aktivität durch onclick-Taste senden.Breite und Länge eingeben und an eine andere Aktivität senden

So senden Sie Lat und Long an eine andere Aktivität und eine andere Aktivität erhalten Lat und Long.

Sorry, ich bin Neuling. :(

Dies ist meine Klasse.

public class Maps extends FragmentActivity { 

    GoogleMap googleMap; 
    MarkerOptions markerOptions; 
    Marker gpin = null; 
    LatLng latLng; 
    String lat = "", lng = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.maps_layout); 

     SupportMapFragment supportMapFragment = (SupportMapFragment) 
       getSupportFragmentManager().findFragmentById(R.id.map); 

     // Getting a reference to the map 
     googleMap = supportMapFragment.getMap(); 

     // Getting reference to btn_find of the layout activity_main 
     Button btn_find = (Button) findViewById(R.id.btn_find); 

     // Defining button click event listener for the find button 
     OnClickListener findClickListener = new OnClickListener() {   
      @Override 
      public void onClick(View v) { 
       // Getting reference to EditText to get the user input location 
       EditText etLocation = (EditText) findViewById(R.id.et_location); 

       // Getting user input location 
       String location = etLocation.getText().toString(); 

       if(location!=null && !location.equals("")){ 
        new GeocoderTask().execute(location); 
       } 
      } 
     }; 

     // Setting button click event listener for the find button 
     btn_find.setOnClickListener(findClickListener);  


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main_menu, menu); 
     return true; 
    } 


    // An AsyncTask class for accessing the GeoCoding Web Service 
     private class GeocoderTask extends AsyncTask<String, Void, List<Address>>{ 

      @Override 
      protected List<Address> doInBackground(String... locationName) { 
       // Creating an instance of Geocoder class 
       Geocoder geocoder = new Geocoder(getBaseContext()); 
       List<Address> addresses = null; 

       try { 
        // Getting a maximum of 3 Address that matches the input text 
        addresses = geocoder.getFromLocationName(locationName[0], 3); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       }   
       return addresses; 
      } 


      @Override 
      protected void onPostExecute(List<Address> addresses) {   

       if(addresses==null || addresses.size()==0){ 
        Toast.makeText(getBaseContext(), "No Location found", Toast.LENGTH_SHORT).show(); 
       } 

       // Clears all the existing markers on the map 
       googleMap.clear(); 

       // Adding Markers on Google Map for each matching address 
       for(int i=0;i<addresses.size();i++){     

        Address address = (Address) addresses.get(i); 

        // Creating an instance of GeoPoint, to display in Google Map 
        latLng = new LatLng(address.getLatitude(), address.getLongitude()); 

        String addressText = String.format("%s, %s", 
          address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "", 
          address.getCountryName()); 

        markerOptions = new MarkerOptions(); 
        markerOptions.position(latLng); 
        markerOptions.title(addressText); 

        googleMap.addMarker(markerOptions); 

        // Locate the first location 
        if(i==0)       
         googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); 
        googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 


          public void onMapClick(LatLng point) { 
           // // TODO Auto-generated method stub 
           if (gpin != null) { 
            gpin.remove(); 
           } 
           gpin = googleMap.addMarker(new MarkerOptions().position(
             new LatLng(point.latitude, point.longitude)).icon(
             BitmapDescriptorFactory 
               .fromResource(R.drawable.ic_pin))); 
           lat = point.latitude + ""; 
           lng = point.longitude + ""; 
          } 
         }); 
       }   
      } 
     } 
} 
+0

In Ihrem Listener verwenden Sie 'startActivity()' und geben Sie eine 'Intent' mit den relevanten Informationen. –

+0

Paket verwenden, um LatLng in Absicht zu senden –

Antwort

1
Intent intent = new Intent(getBaseContext(), SignoutActivity.class); 
intent.putExtra("LATITUDE_ID", latitude); 
intent.putExtra("LONGITUDE_ID", longitude); 
startActivity(intent); 

obige Verfahren zum Senden der Daten verwendet.

Dann in der Aktivität möchten Sie diese Werte verwenden

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
    double value = extras.getDouble("LATITUDE_ID"); 
    //The key argument here must match that used in the other activity 
} 
1

Um einen String oder einen int-Wert zu senden, können Sie putExtra() verwenden, aber wenn Sie den LatLng senden möchten, müssen wir bund verwenden le:

Bundle args = new Bundle(); 
args.putParcelable("customerLatLng", customerLatLng); 
Intent intent=new Intent(OldActivity.this,NewActivity.class); 
intent.putExtras(args); 
startActivity(intent); 

in Ihrem NewActivity.class:

Intent i = getIntent(); 
final Bundle extras = getIntent().getExtras(); 
LatLng customerLatLng = i.getParcelableExtra("customerLatLng"); 
0

Ich mag geografische Breite und Länge in getrennte Dinge, wegen der Tätigkeit, die die Koordinaten gesendet wurde wie dieser Code.

public void run() { 
        // TODO Auto-generated method stub 
        String handleInserUrl = getResources().getString(
          R.string.estate_json_url) 
          + "estates"; 
        try { 
         HttpClient client = new DefaultHttpClient(); 
         HttpPost post = new HttpPost(handleInserUrl); 
         MultipartEntity reqEntity = new MultipartEntity(); 
         String titleText = title.getText().toString(); 
         String priceText = price.getText().toString(); 
         String contentText = content.getText().toString(); 
         String bathroomText = bathroom.getText().toString(); 
         String bedroomText = bedroom.getText().toString(); 
         String areaText = area.getText().toString(); 
         String lantaiText = lantai.getText().toString(); 
         String luasbangunanText = luasbangunan.getText().toString(); 
         String addressText = address.getText().toString(); 

         reqEntity.addPart("address", new StringBody(
           addressText)); 
         reqEntity.addPart("user_id", 
           new StringBody(user.getId() + "")); 
         reqEntity.addPart("title", 
           new StringBody(titleText)); 
         reqEntity.addPart("price", 
           new StringBody(priceText)); 
         reqEntity.addPart("content", new StringBody(
           contentText)); 
         reqEntity.addPart("cities", new StringBody(
           city_selected + "")); 
         reqEntity.addPart("types", new StringBody(
           type_selected + "")); 
         reqEntity.addPart("county", new StringBody(
           county_selected + "")); 
         reqEntity.addPart("purpose", new StringBody(
           purpose_selected + "")); 
         reqEntity.addPart("statusproperti", new StringBody(
           statusselected + "")); 
         reqEntity.addPart("area", new StringBody(areaText)); 
         reqEntity.addPart("lantai", new StringBody(lantaiText)); 
         reqEntity.addPart("luasbangunan", new StringBody(luasbangunanText)); 
         reqEntity.addPart("bathrooms", new StringBody(
           bathroomText)); 
         reqEntity.addPart("bedrooms", new StringBody(
           bedroomText)); 
         reqEntity.addPart("time_rate", new StringBody(
           time_rate_selected + "")); 
         reqEntity.addPart("marker", new StringBody(
           marker_selected + "")); 
         reqEntity.addPart("lat", new StringBody(lat)); 
         reqEntity.addPart("lng", new StringBody(lng)); 
Verwandte Themen