2016-07-20 65 views
-2

请帮助我, 我想通过点击按钮将此活动的纬度和经度坐标发送到其他活动。放入经纬度并发送到其他活动

如何将此活动发送经纬度和长时间给另一活动,另一活动收到经纬度和长时间。

对不起,我是新手。 :(

这我的班级。

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

在您的侦听器中使用'startActivity()'并将它传递给'Intent'与相关信息。 –

+0

使用绑定为了发送LatLng意图 –

回答

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

上述方法用于发送数据。

然后在活动中要使用这些值

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

为了发送字符串或int值,你可以使用putExtra(),但是如果你想发送LatLng,我们需要使用bund乐:

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

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

我想是因为所发送的坐标是做这样的代码活动的纬度和经度为独立的东西。

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)); 
相关问题