Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
#1

Как разместить карту на Fragment - Программирование Android

29.08.2016, 12:53. Просмотров 258. Ответов 3
Метки нет (Все метки)

Есть решенный класс для запуска карт в FragmentActivity. Как запустить в Fragment? Не могу вызвать GetSupportFragmentManager

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
 
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class MainActivity extends FragmentActivity implements OnMapReadyCallback {
 
    private static final int REQUEST_ACCESS_FINE_LOCATION = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
 
    @Override
    public void onMapReady(GoogleMap map) {
        map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        LatLng address1 = new LatLng(53.908757, 27.469890);
        map.addMarker(new MarkerOptions().position(address1).title("Marker in Sydney"));
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(address1, 12));
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_ACCESS_FINE_LOCATION);
            }
            return;
        }
        map.setMyLocationEnabled(true);
    }
 
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        if (requestCode == REQUEST_ACCESS_FINE_LOCATION) {
            if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                startActivity(getIntent());
                finish();
            }
        }
    }
}
Добавлено через 1 час 20 минут
Вопрос решен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2016, 12:53     Как разместить карту на Fragment
Посмотрите здесь:

Как из сервиса запустить fragment - Программирование Android
Привет друзья в общем у меня есть Сервис который при определенных обстоятельствах должен выводить на экран телефона Fragments, подскажите...

[Swipe, Fragment] - интерфейс как у маркета - Программирование Android
Приветствую, которую неделю туплю и не могу сделать интерфейс как у маркета. Задача, сделать интерфейс, чтобы жестом пальца можно было...

Как объявить ImageButton в Fragment.java? - Программирование Android
Помогите пожалуйста!Есть Fragment как правильно объявить ImageButton,что бы по нажатию на него происходил переход на другой экран.

Как запустить метод Fragment из MainActivity? - Программирование Android
есть фрагмент с картой, в нем метод: public void Sputnik(GoogleMap map) { ...

Fragment как в нем добавить List View - Программирование Android
В моей программе я с главного активити через naviganion drawer попадаю во фрагмент и в этом фрагменте мне нужно чтобы у меня был list view....

Пересоздание Fragment при листании, как избавиться? - Программирование Android
Попробовал сделать таб-слайдер. Закладки с возможностью листать их слайдом. Столкнулкся с неожиданной "особенностью". Каждая...

ClassNotFoundException. android.view.fragment. как лечить? - Программирование Android
Добрый день всем. Есть очень банальная проблема. ClassNotFoundException лейаут popup.xml <?xml version="1.0" encoding="utf-8"?> ...

Как позволить установку приложения на карту памяти? - Программирование Android
Здравствуйте. Возникла необходимость дать возможность переносить программу на SD карту. Видится мне, что делается это в пару кликов,...

findViewById и Fragment - Программирование Android
Пытаюсь использовать getView().findViewById Но не работает

Вызов Fragment - Программирование Android
Здравствуйте, есть такая задача. есть main класс ActionBarActivity который из обычно класса можно вызывать как...

Reload Fragment - Программирование Android
Такая проблема, по нажатию кнопки поиска у меня возвращается список, под который на фрагменте создаются layout's. Пытаюсь сделать так,...

Fragment и RoboSpice - Программирование Android
Всем доброго времени суток, возникла проблема при использовании асинхронного запроса с помощью RoboSpice и инициализации фрагмента....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3138 / 1940 / 214
Регистрация: 13.01.2012
Сообщений: 7,429
29.08.2016, 13:22     Как разместить карту на Fragment #2
Цитата Сообщение от PhantomR Посмотреть сообщение
Вопрос решен!
скажите идущим за вами "как"
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 74
30.08.2016, 09:31  [ТС]     Как разместить карту на Fragment #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class ContactsFragment extends Fragment implements OnMapReadyCallback {
    private static final int REQUEST_ACCESS_FINE_LOCATION = 0;
    private TextView number;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_contact, container, false);
        initMaps();
        initMaps();
        return view;
    }
 
    private void initMaps() {
        ((SupportMapFragment) getChildFragmentManager().
                findFragmentById(R.id.map)).getMapAsync(this);
    }
 
    @Override
    public void onMapReady(GoogleMap map) {
        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        LatLng city = new LatLng(53.903752, 27.564201);
        LatLng address1 = new LatLng(53.908757, 27.469890);
        LatLng address2 = new LatLng(53.920255, 27.577232);
        LatLng address3 = new LatLng(53.878631, 27.558539);
        map.addMarker(new MarkerOptions().position(address1).title("Cafe #1"));
        map.addMarker(new MarkerOptions().position(address2).title("Cafe #2"));
        map.addMarker(new MarkerOptions().position(address3).title("Cafe #3"));
        map.animateCamera(CameraUpdateFactory.newLatLngZoom(city, 10));
        if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_ACCESS_FINE_LOCATION);
            }
            return;
        }
        map.setMyLocationEnabled(true);
    }
}
Добавлено через 20 часов 6 минут
Кстати, есть нюанс, что т.к. необходимо использовать SupportMapFragment, то нужно вызывать v4 библиотеку, что может накладывать определённые ограничения.

Добавлено через 33 секунды
Не забудьте прописать в манифесте permissions

Добавлено через 11 секунд
XML
1
2
3
4
5
6
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
30.08.2016, 12:27     Как разместить карту на Fragment #4
Цитата Сообщение от PhantomR Посмотреть сообщение
Кстати, есть нюанс, что т.к. необходимо использовать SupportMapFragment, то нужно вызывать v4 библиотеку, что может накладывать определённые ограничения.
Давно не занимался проектами без SupportLibrary. Если не секрет, какие ограничения? Нестыковка версий фрагментов в разных частях проекта? Падение на устройствах?
Yandex
Объявления
30.08.2016, 12:27     Как разместить карту на Fragment
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru