Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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
Android 谷歌地图问题,默认位置按钮不起作用,默认图标未显示_Android_Google Maps - Fatal编程技术网

Android 谷歌地图问题,默认位置按钮不起作用,默认图标未显示

Android 谷歌地图问题,默认位置按钮不起作用,默认图标未显示,android,google-maps,Android,Google Maps,当我的应用程序运行正常时,我没有备份它。我的问题是位置按钮现在不起作用,并且没有显示我实际位置的默认图标。。。。 谢谢你的帮助 谢谢 这是片段类: package google.Bi; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnectio

当我的应用程序运行正常时,我没有备份它。我的问题是位置按钮现在不起作用,并且没有显示我实际位置的默认图标。。。。 谢谢你的帮助

谢谢

这是片段类:

package google.Bi;




import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.List;

import org.json.JSONObject;

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.Fragment;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
import com.google.android.gms.maps.GoogleMap.OnMarkerDragListener;
import com.google.android.gms.maps.GoogleMapOptions;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
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 android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.view.InflateException;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.TextView;
import android.app.AlertDialog;
import android.app.Service;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;
import android.app.Dialog;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;


public class mapfragmentplaces extends Fragment implements LocationListener {


protected LocationManager locationManager;
// GoogleMap googleMap;

LatLng myPosition;
private SupportMapFragment map;
private GoogleMap mMapView;


int fragVal2;
static Context ontext;
private static View view;


//lo que se ocupa para construir los sitios

String[] mPlaceType=null;
String[] mPlaceTypeName=null;

double mLatitude=0;
double mLongitude=0;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        if (view != null) {
            ViewGroup parent = (ViewGroup) view.getParent();
            if (parent != null) {
                parent.removeView(view);
               view = null;
            }
        } 

        try {
            view = inflater.inflate(R.layout.fragment_layout, container, false);
        android.support.v4.app.FragmentManager fm = getFragmentManager();

            /*
            GoogleMapOptions gmo = (new GoogleMapOptions()).zoomControlsEnabled(false).rotateGesturesEnabled(false);
            SupportMapFragment mapFragment = SupportMapFragment.newInstance(gmo);
            android.support.v4.app.FragmentTransaction fragmentTransaction = getFragmentManager()     .beginTransaction();
            fragmentTransaction.add(R.id.mapFragmentHole, mapFragment);
            fragmentTransaction.commit();

            GoogleMap map = mapFragment.getMap();   */

            map = (SupportMapFragment) fm.findFragmentById(R.id.map);


            if (map == null) {
                map = SupportMapFragment.newInstance();
                fm.beginTransaction().replace(R.id.map, map).commit();
            }


            //  mMapView = fm.getMap();
            mMapView = map.getMap();
                // Enabling MyLocation Layer of Google Map
            mMapView.setMyLocationEnabled(true);

            // Getting LocationManager object from System Service LOCATION_SERVICE
            LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);

            // Creating a criteria object to retrieve provider
             Criteria criteria = new Criteria();

            // Getting the name of the best provider
            String provider = locationManager.getBestProvider(criteria, true);

            // Getting Current Location From GPS
             Location location = locationManager.getLastKnownLocation(provider);

            if(location!=null){
                onLocationChanged(location);
       }

           locationManager.requestLocationUpdates(provider, 20000, 0, this);





            // Clears all the existing markers 
            mMapView.clear();

            final String Lugar = "Plaza fiesta";
            String  Desc = "Lugar bonito";

                Double Lat3 = 25.751188242782035;
                Double Lng3 = -100.3097140789032;

//                      notificacion(Results.toString());
                mMapView.addMarker(new MarkerOptions()
                          .position(new LatLng(Lat3,Lng3))
                          .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker1))
                          .title(Lugar)
                          .snippet(Desc));

            /*  mMapView.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
                    @Override
                    public void onInfoWindowClick(Marker marker) {
                       Intent intent = new Intent(getActivity(), Stores.class);
                       startActivity(intent);

                    }
                }); */

                mMapView.setOnMarkerClickListener(new OnMarkerClickListener() {

                    @Override
                    public boolean onMarkerClick(Marker marker) {
                        // TODO Auto-generated method stub
                        Intent intent2 = null;
                         if(marker.getTitle().equals(Lugar)) // if marker source is clicked
                          { intent2 = new Intent(getActivity(), Stores2.class);
                           startActivity(intent2);
                          } else
                          {
                              marker.showInfoWindow();

                          }
                           return true;
                    } 


                 });  




                List<HashMap<String, String>> list = setPlaceTag.getList();
                String we[] = setPlaceTag.getFinals2();
                String we2[]    = setPlaceTag.getFinals3();
                LatLng we3[]    = setPlaceTag.getFinals4();
                if (list!=null){
            //((Menu) map).clear();
            for(int i=0;i<list.size();i++){


                // Creating a marker
                MarkerOptions markerOptions = new MarkerOptions();

                // Getting a place from the places list
                HashMap<String, String> hmPlace = list.get(i);

                // Getting latitude of the place
                double lat = Double.parseDouble(hmPlace.get("lat"));                

                // Getting longitude of the place
                double lng = Double.parseDouble(hmPlace.get("lng"));

                // Getting name
                String name = hmPlace.get("place_name");

                // Getting vicinity
                String vicinity = hmPlace.get("vicinity");

                LatLng latLng = new LatLng(lat, lng);

                // Setting the position for the marker
                markerOptions.position(latLng);

                // Setting the title for the marker. 
                //This will be displayed on taping the marker
                markerOptions.title(name + " : " + vicinity);

               if( we[setPlaceTag.getPosition()].equals(name) && we2[setPlaceTag.getPosition()].equals(vicinity) 
                       && we3[setPlaceTag.getPosition()].equals(latLng)){
                    markerOptions.position(latLng).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
                    } 
                // Placing a marker on the touched position
                mMapView.addMarker(markerOptions);            

            }
                }


        } catch (InflateException e) {
            /* map is already there, just return view as it is */
        }



        /*if(anterior!=actual){

            Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
            getFragmentManager().beginTransaction().remove(fragment).commit(); 

        } */


        return view;
        }


    @Override
    public void onLocationChanged(Location location) {
        mLatitude = location.getLatitude();
        mLongitude = location.getLongitude();
        LatLng latLng16 = new LatLng(mLatitude, mLongitude);

        /* Double Lat3 = 25.751188242782035;
        Double Lng3 = -100.3097140789032;
        LatLng latLng = new LatLng(Lat3, Lng3); */
        mMapView.moveCamera(CameraUpdateFactory.newLatLng(latLng16));
        mMapView.animateCamera(CameraUpdateFactory.zoomTo(12));

    }

    @Override
        public void onResume() {
            // TODO Auto-generated method stub


            super.onResume();
        }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }

     @Override
        public void onDestroyView() {

            super.onDestroyView();
            map = SupportMapFragment.newInstance();
           /* android.support.v4.app.FragmentTransaction fragmentTransaction =
                     getChildFragmentManager().beginTransaction();
             fragmentTransaction.add(R.id.map, map);
             fragmentTransaction.commit();  */

            Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
            if (fragment != null){
                getFragmentManager().beginTransaction().remove(fragment).commit();}
        }

}

onLocation让我把地图放在我的实际位置的中心,但我希望有谷歌的默认图标,并且位置按钮可以工作。。。谢谢。

如果您的位置按钮不起作用且图标未显示:

1-确保你的应用程序具有所有gps权限

2-检查您的清单,查看internet上324464556教程中的权限

3-检查@Mateusz Jablonski对我的代码的评论

4-如果它们都不起作用,并且你确信你的应用程序的结构是正确的。。。去5号


5-重新启动您的手机。也许你会改变一些开发选项。。。或者在处理时出现了一些错误。

请尝试删除mMapView.clear,或者在清除后再次设置mMapView.setMyLocationEnabledtrue。感谢您的快速响应Mateusz!!嗯。。。我两个都试过了。。。但都没用:watdafa。。。。我重新启动我的手机关闭和打开。。。它有效吗?1.我在手机上的gps权限已检查。。。2.我试过换钥匙。。。瓦达法3号。。。。