Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过单击列表视图上的列表项,在MapView Android Studio上更改相机视图的位置_Android_Listview_Android Intent_Latitude Longitude_Android Mapview - Fatal编程技术网

通过单击列表视图上的列表项,在MapView Android Studio上更改相机视图的位置

通过单击列表视图上的列表项,在MapView Android Studio上更改相机视图的位置,android,listview,android-intent,latitude-longitude,android-mapview,Android,Listview,Android Intent,Latitude Longitude,Android Mapview,因此,我在Android studio中有listview,我如何在listview上的每个列表项上设置意图以打开地图视图,同时使用我自己定义的纬度和经度值更改地图视图上的相机位置?因此列表视图中的每个项目都有自己的纬度和经度值,当我们单击它时,它将在mapview上为每个项目列表显示不同的相机位置 这是我的适配器类 public class CustomListAdapter extends BaseAdapter { private Activity activity; private

因此,我在Android studio中有listview,我如何在listview上的每个列表项上设置意图以打开地图视图,同时使用我自己定义的纬度和经度值更改地图视图上的相机位置?因此列表视图中的每个项目都有自己的纬度和经度值,当我们单击它时,它将在mapview上为每个项目列表显示不同的相机位置

这是我的适配器类

public class CustomListAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<Jarak> jarakItems;
private ImageLoader imageLoader;

public CustomListAdapter(Activity activity, List<Jarak> jarakItems) {
    this.activity = activity;
    this.jarakItems = jarakItems;
}

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

@Override
public Object getItem(int location) {
    return jarakItems.get(location);
}

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



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

    if (inflater == null)
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if (convertView == null)
        convertView = inflater.inflate(R.layout.list_row, null);

   if (imageLoader == null)
        imageLoader = AppController.getInstance().getImageLoader();
    NetworkImageView thumbNail = (NetworkImageView) convertView.findViewById(R.id.gambar);
    TextView nama = (TextView) convertView.findViewById(R.id.nama);
    TextView jarak = (TextView) convertView.findViewById(R.id.jarak);

    Jarak j = jarakItems.get(position);

    //thumbNail.setImageUrl(j.getGambar(), imageLoader);
    nama.setText(j.getNama());
    jarak.setText(j.getJarak()+" Km");

    return convertView;
    }
}
公共类CustomListAdapter扩展了BaseAdapter{
私人活动;
私人充气机;
私人名单jarakItems;
私有图像加载器;
公共CustomListAdapter(活动,列表jarakItems){
这个。活动=活动;
this.jarakItems=jarakItems;
}
@凌驾
public int getCount(){
返回jarakItems.size();
}
@凌驾
公共对象getItem(int位置){
返回jarakItems.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
如果(充气器==null)
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
if(convertView==null)
convertView=充气机。充气(R.layout.list_行,空);
如果(imageLoader==null)
imageLoader=AppController.getInstance().getImageLoader();
NetworkImageView缩略图=(NetworkImageView)convertView.findViewById(R.id.gambar);
TextView-nama=(TextView)convertView.findViewById(R.id.nama);
TextView jarak=(TextView)convertView.findViewById(R.id.jarak);
Jarak j=jarakItems.get(位置);
//setImageUrl(j.getGambar(),imageLoader);
nama.setText(j.getNama());
setext(j.getJarak()+“Km”);
返回视图;
}
}
私有void callListVolley(双纬度经销商、双经度经销商){
itemList.clear();
adapter.notifyDataSetChanged();
swipe.setRefreshing(true);
JsonArrayRequest jArr=新的JsonArrayRequest(url+latitude\u经销商+”&lng=“+latitude\u经销商,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
Log.e(TAG,response.toString());
//解析json
对于(int i=0;i
您可以通过此代码在活动OnCreate override merthod中获取单击项值

    ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

        Log.i("Hello!", "Y u no see me?");

    }

});
ListView ListView=getListView();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
我(“你好!”,“你没看见我吗?”);
}
});
然后从单击项中获取lat long值,然后将相机移动到OnMapReady方法中的特定lat long位置,这段代码正好

     ListView listView = getListView();
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

           flote lat = latlong; //get this from your arraylist by putting the value position
flote long = latlong; //get this from your arraylist by putting the value position
Latlong newpos = new Latlong(lat,long);
//for create a marker on that point
    MarkerOptions options = new MarkerOptions();
options.position(newpos);
 mMap.addMarker(options);

//mMap is the object of google map
mMap.moveCamera(CameraUpdateFactory
                                                    .newCameraPosition
                                                            (new CameraPosition.Builder()
                                                                    .target(newPos)
                                                                    .zoom(55.5f)
                                                                    .build()));
ListView ListView=getListView();
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
flote-lat=latlong;//通过将值放在
flote long=latlong;//通过将值放在
Latlong newpos=新Latlong(lat,long);
//例如,在该点上创建标记
MarkerOptions options=新的MarkerOptions();
选项。位置(新位置);
mMap.addMarker(选项);
//mMap是googlemap的对象
mMap.移动摄像头(摄像头更新工厂
.newCameraPosition
(新建CameraPosition.Builder()
.target(newPos)
.变焦(55.5f)
.build());

首先从列表项中获取
lat
lang
,并将其作为附加项传递给intent

主要活动


这是一项非常简单的任务,将latLang以捆绑方式传递给列表项上的MapActivity单击,然后将摄影机动画化为新latLang我很抱歉,我在哪里放置了将摄影机动画化为新latLang的代码?请您详细解释您的答案?您是如何从列表项中获取latLang的?您能显示代码吗?当然,您可以看到下面,这是我的代码为了从列表项中获取latLang,您是否也可以发布您的适配器类,这次编辑您的问题并将其发布到那里。但是我已经为我的当前位置提供了onmapready方法…这是否意味着我不需要
     ListView listView = getListView();
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

           flote lat = latlong; //get this from your arraylist by putting the value position
flote long = latlong; //get this from your arraylist by putting the value position
Latlong newpos = new Latlong(lat,long);
//for create a marker on that point
    MarkerOptions options = new MarkerOptions();
options.position(newpos);
 mMap.addMarker(options);

//mMap is the object of google map
mMap.moveCamera(CameraUpdateFactory
                                                    .newCameraPosition
                                                            (new CameraPosition.Builder()
                                                                    .target(newPos)
                                                                    .zoom(55.5f)
                                                                    .build()));
  listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            double lat = view.getLat();
            double lang = view.getLang();
            Bundle bundle = new Bundle();

            bundle.putDouble("LAT", lat);
            bundle.putDouble("LANG", lang);

            Intent intent = new Intent(MainActivity.this, MapsActivity.class);
            intent.putExtras(bundle);
            startActivity(intent);
        }
    });
//...
 protected void onCreate(Bundle savedInstanceState) {
   ///....

    Intent intent = getIntent();
    Bundle bundle = intent.getExtras();
    double lat =  bundle.getDouble("LAT");
    double lang =  bundle.getDouble("LANG");

    latLng = new LatLng(lat, lang);

}

 @Override
public void onMapReady(GoogleMap googleMap) {


    mMap = googleMap;

    CameraUpdate location = CameraUpdateFactory.newLatLngZoom(
            latLng, 15);
    mMap.animateCamera(location);

}