SherlockFragment и Location

Ответить
MAGISTR-Shuba
Сообщения: 15
Зарегистрирован: 04 июн 2013, 18:39

SherlockFragment и Location

Сообщение MAGISTR-Shuba » 12 окт 2013, 17:16

Всем привет =)
Ситуация такая - скачал SherlockBar, и теперь пытаюсь во фрагмент засунуть карту, отображающую местоположение пользователя.
Проблема - есть ли способ сделать это для версии андроида 2.3? Нужно ли использовать какие-то сторонние классы? Можно ли как-то "запихнуть" во View (которое я передаю шерлоку для отображения фрагмента) эту карту?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: SherlockFragment и Location

Сообщение rezak90 » 12 окт 2013, 21:59

не вижу проблем, MapView можно запихнуть куда угодно
R.id.team
Политика на форуме запрещена

MAGISTR-Shuba
Сообщения: 15
Зарегистрирован: 04 июн 2013, 18:39

Re: SherlockFragment и Location

Сообщение MAGISTR-Shuba » 13 окт 2013, 02:01

rezak90 писал(а):не вижу проблем, MapView можно запихнуть куда угодно
Не могли бы Вы привести пример? Сколько примеров не перепробовал (и стакОверФлоу, и сторонние статьи) - так и не получается даже карту отобразить (пермишины ставил, API-ключ указывал, в гугле карты включал, библиотеку гугл-сервиса подгружал)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: SherlockFragment и Location

Сообщение rezak90 » 13 окт 2013, 09:57

лучше покажи код как ты это всё дело подключаешь
R.id.team
Политика на форуме запрещена

MAGISTR-Shuba
Сообщения: 15
Зарегистрирован: 04 июн 2013, 18:39

Re: SherlockFragment и Location

Сообщение MAGISTR-Shuba » 13 окт 2013, 10:40

rezak90 писал(а):лучше покажи код как ты это всё дело подключаешь
Пока просто чтобы отобразить текущие координаты сделал так:

Код: Выделить всё

public class PartOfMap extends SherlockFragment implements LocationListener{
	private View view=null;
	GoogleMap googleMap;
	private MapView mapView;
	
	private static double lat=0.0 ,lon=0.0 ,alt=0.0 ,speed=0.0;
	private boolean isGPSEnabled = false, isNetworkEnabled=false;
	private Location location;
 
@Override
	  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          View view = inflater.inflate(R.layout.fragment_map, container, false);
          LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
			isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
			Toast.makeText(getActivity(), "isGPSEnabled =" + isGPSEnabled, 100).show();
			isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
			Toast.makeText(getActivity(), "isNetworkEnabled =" + isNetworkEnabled, 100).show();
			
			locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000,
		            1000, this);
			
			
		     if (locationManager != null) {
	             location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
	             if (location != null) {
	                 lat = location.getLatitude();
	                 lon = location.getLongitude();
	                 Toast.makeText(getActivity(), "Coordinates"+ lat +""+ lon+"" + alt+"" + speed+"", 100).show();
	             }
                     SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapview);
                     googleMap = fm.getMap();
                     googleMap.setMyLocationEnabled(true);
                     Marker marker = googleMap.addMarker(new MarkerOptions()
	                              .position(new LatLng(lat, lon))
	                              .title("San Francisco")
	           
	             view=getActivity().findViewById(R.id.mapview);

                     return view;
	         }
        @Override
	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		setUserVisibleHint(true);
         }

        @Override
	public void onLocationChanged(Location location) {}
XML:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
    <com.google.android.gms.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />
Манифест:

Код: Выделить всё

<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

        <uses-library android:name="com.google.android.maps" />


        <meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="ключ" />
Далее пустые методы-вставки. На данном этапе пишет что проблема в xml и он не может заинфлэтить мапу

Ответить