带有onClickListener()的Android Google Map ListView

宝石乌巴尔多

我正在创建一个由国家组成的应用程序,在列表视图中,列表视图上方有谷歌地图。当用户打开应用程序时。那里有一个谷歌地图,可以找到用户的位置,下面是国家的列表视图。用户在列表中选择后,地图将自动转到该国家/地区。将列表视图与纬度和经度一起存储在sqlite中。自从我第一次使用Google Map创建应用程序以来,我就没有任何想法。

主要活动

public class MainActivity extends AppCompatActivity implements LocationListener {

    GoogleMap map;

    List<CountryModel> GetCountry;
    Context context = this;
    DatabaseHelper dbhelper;
    DatabaseHelper db = new DatabaseHelper(this);
    ListView lv;

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

        dbhelper = new DatabaseHelper(MainActivity.this);

        try{
            dbhelper.createDataBase();
        }
        catch(IOException e){
            e.printStackTrace();
        }
        try {
            dbhelper.openDataBase();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        GetCountry = dbhelper.getCountry();
        lv = (ListView) findViewById(R.id.listView);
        lv.setAdapter(new ViewAdapter());



        //To get MapFragment reference from xml layout
        MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.map);

        //To get map object
        map = mapFragment.getMap();
        map.getUiSettings().setZoomControlsEnabled(true);

       /* //to show current location in the map
        map.setMyLocationEnabled(true);

        map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {

                Toast.makeText(getApplicationContext(), latLng.toString(), Toast.LENGTH_LONG).show();
            }
        });*/

        //To setup location manager
        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        //To request location updates
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1, 1, this);

    }


    @Override
    public void onLocationChanged(Location location) {

        //To clear map data
        map.clear();

        //To hold location
        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());

        //To create marker in map
        MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.position(latLng);
        markerOptions.title("My Location");
        //adding marker to the map
        map.addMarker(markerOptions);

        //opening position with some zoom level in the map
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 17.0f));
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }

    /****************************************************************************************
     *                                      CUSTOM LIST
     ****************************************************************************************/
    public class ViewAdapter extends BaseAdapter {

        LayoutInflater mInflater;

        public ViewAdapter() {
            mInflater = LayoutInflater.from(context);
        }

        @Override
        public int getCount() {
            return GetCountry.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {

            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.item_country,null);
            }

            final TextView country = (TextView) convertView.findViewById(R.id.country);
            final TextView latitude = (TextView) convertView.findViewById(R.id.latitude);
            final TextView longitude = (TextView) convertView.findViewById(R.id.longitude);

            country.setText(GetCountry.get(position).getcountry());
            latitude.setText(GetCountry.get(position).getlatitude());
            longitude.setText(GetCountry.get(position).getlongitude());

            return convertView;
        }
    }

}
普拉卡

在您的onLocationChange()中,地图正在移动到您的当前位置

map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 17.0f));

我认为您需要对listview lat-long做同样的事情。

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

      LatLng latLngtofocus = new LatLng(Double.parseDouble(GetCountry.get(i).getlatitude()),  Double.parseDouble(GetCountry.get(i).getlatitude()));

            map.animateCamera(CameraUpdateFactory.newLatLngZoom(latlngtofocus, 17.0f));
        }
    });

也许应该可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有onClickListener()的Android Google Map ListView

来自分类Dev

带有位置的Android Studio Google Map

来自分类Dev

带有CollapsingToolbar和NestedScrollView的Google Map

来自分类Dev

带有多个标记的AngularJS Google Map

来自分类Dev

Android Google Map崩溃

来自分类Dev

Google Map Options Android

来自分类Dev

重置标记位置或移动相机后,ListView中的MapView挂起(Google Map Android API v2)

来自分类Dev

带有onclicklistener的惊人ListView无法正常工作,请帮助

来自分类Dev

Android ListView OnClickListener

来自分类Dev

带有图像的Android ListView

来自分类Dev

带有查询的Android ListView

来自分类Dev

android +通用图像加载器:在Google Map中显示带有图像的自定义标记

来自分类Dev

Android:Google Map API 2中带有按钮的自定义图钉标记

来自分类Dev

带有嵌套片段的Android Google Map API V2黑屏

来自分类Dev

带有路线指引的Google Map图片

来自分类Dev

带有jQuery slideToggle回调的Google Map API

来自分类Dev

带有Google Map API v2的ViewPager变黑

来自分类Dev

带有Google Map的jQuery无法正确显示

来自分类Dev

带有方向路线打印的Google Map图片

来自分类Dev

带有标记的Google Map与ul列表相关

来自分类Dev

Android Google Map摆脱折线

来自分类Dev

Android中的Google Map Directions

来自分类Dev

Android Google Map无法加载

来自分类Dev

Android Google Map classNotFound异常

来自分类Dev

无法在Android的Google Map活动中显示Google Map

来自分类Dev

Android插入带有viewview结果的listview

来自分类Dev

带有onClick项的Android ListView

来自分类Dev

带有Switch onCheckedListener的Android ListView很奇怪

来自分类Dev

带有标头视图的Android ListView

Related 相关文章

热门标签

归档