如何将数据从listview传递到地图活动上的方法

时间:2018-02-18 18:56:11

标签: java android google-maps listview

我有目的地列表,我想在我的谷歌地图(片段)上从列表中选择的目的地位置上做一个标记

因为这个原因:

toTestLstViewActivity类包含我的地图片段和我想在单击列表视图上的项目时调用的方法gotoDest(LatLng destPosition,String name) 我试图使用意图,但没有工作

toTestLstViewActivity.java

<ul>
  <li>Item 1
    <p>More text as part of the list item</p>
  </li>
</ul>

<p>Some other text</p>

<ul>
  <li>Item 2 contains another list
    <ul>
      <li>item 2a</li>
      <li>item 2b</li>
    </ul>
</ul>

PoleFragment.java包含我的列表视图

import android.location.Location;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import java.util.ArrayList;

public class toTestLstViewActivity extends AppCompatActivity implements OnMapReadyCallback {
    GoogleMap mGoogleMap;
    ArrayList<LatLng> MarkerPoints;
    GoogleApiClient mGoogleApiClient;
    Location mLastLocation;
    Marker mCurrLocationMarker , mCurrLocationMarkerInit;
    LocationRequest mLocationRequest;
    String namedest,latdest,lngdest;
    LatLng positionDest;

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



        MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.fragment3);
        mapFragment.getMapAsync(this);

        namedest = getIntent().getStringExtra(PoleFragment.Name_EXTRA);
        latdest = getIntent().getStringExtra(PoleFragment.Name_EXTRA);
        lngdest = getIntent().getStringExtra(PoleFragment.Name_EXTRA);
        positionDest= new LatLng( Double.parseDouble(latdest),Double.parseDouble(lngdest));
        gotoDest(positionDest,namedest);

    }
    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap = googleMap;

        mGoogleMap.addMarker(new MarkerOptions()
                .position(new LatLng(33.795964, 2.849461))
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))
                .title("city A")
                .snippet("city A"));
        goToLocationZoom(33.795964, 2.849461,11);


    }
    public void goToLocationZoom(double lat, double lng, float zoom) {
        LatLng ll = new LatLng(lat, lng);
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll, zoom);
        mGoogleMap.moveCamera(update);
    }

    public void gotoDest(LatLng destPosition,String name) {

        mGoogleMap.addMarker(new MarkerOptions()
                .position(new LatLng(destPosition.latitude, destPosition.longitude))
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED))
                .title(name)
                .snippet(name));
        goToLocationZoom(destPosition.latitude, destPosition.longitude,14);

    }


}

感谢您的帮助!

0 个答案:

没有答案