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号。。。。