Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

29.08.2016, 12:53. Просмотров 343. Ответов 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 минут
Вопрос решен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2016, 12:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как разместить карту на Fragment (Программирование Android):

Обновление fragment из другого fragment - Программирование Android
Добрый вечер всем!! Подскажите пожалуйста как обновить один фрагмент из другого (а именно TextView и ArrayAdapter)?

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

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

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

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

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

3
vxg
Модератор
3224 / 2027 / 231
Регистрация: 13.01.2012
Сообщений: 7,868
29.08.2016, 13:22 #2
Цитата Сообщение от PhantomR Посмотреть сообщение
Вопрос решен!
скажите идущим за вами "как"
0
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 78
30.08.2016, 09:31  [ТС] #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" />
1
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,733
30.08.2016, 12:27 #4
Цитата Сообщение от PhantomR Посмотреть сообщение
Кстати, есть нюанс, что т.к. необходимо использовать SupportMapFragment, то нужно вызывать v4 библиотеку, что может накладывать определённые ограничения.
Давно не занимался проектами без SupportLibrary. Если не секрет, какие ограничения? Нестыковка версий фрагментов в разных частях проекта? Падение на устройствах?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2016, 12:27
Привет! Вот еще темы с ответами:

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

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

Fragment - Программирование Android
Eсть Activity состоящий из ActionBar в котором две вкладки, каждая из них это Fragment. Не пойму как при переходе ко второй вкладке...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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