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

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

Войти
Регистрация
Восстановить пароль
 
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 126
#1

Googlemaps + onBackPressed - Android

25.08.2016, 15:13. Просмотров 180. Ответов 4
Метки нет (Все метки)

в общем откуда то взялась проблема...
Имеется фрагмент №1 с картой с него переход на №2 с указанием точного "адреса ручками"
во втором фрагменте при сохранении адреса вызывается
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void savePoint(){
        TaxiOrder order = ((MainActivity) getActivity()).getOrder();
        if(bundlePosition == -1){
            order.getAddressList().add(bundleTaxiAddress);
        } else{
            try {
                order.getAddressList().set(bundlePosition,bundleTaxiAddress);
            } catch (Exception e) {
                Toast.makeText(getActivity(),"Ошибка!",Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
        }
        getActivity().onBackPressed();
    }
т.е. тупо сохраняем точку и жмет кнопку назад. При этом в области фрагментов - ничего не отображается, потому что в 1м фрагменте вызывается такая конструкция:
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onDestroyView() {
        super.onDestroyView();
        if (!getActivity().isFinishing()) {
            FragmentManager fm = getActivity().getFragmentManager();
            if(mapFragment != null) {
                fm.beginTransaction().remove(mapFragment).commit();
            }
        }
    }
без нее никак, но и с ней все почему то перестало работать
Заметил когда поднял планку API приолжения до 5го андройда, на 4м все работало %) На вскидку поменялось только вот здесь(метод onCreateView):
Java
1
2
3
4
5
//api 21+
        mapFragment = (MapFragment) this.getChildFragmentManager().findFragmentById(R.id.container_map);
        //api20-
        //MapFragment mapFragment = (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.container_map);
        mapFragment.getMapAsync(this);
т.е. при переходу на 2й фрагмент вью первого удаляется и больше отрисовываться не хочет в onCreateView при возврате не заходит. Спасите, как поправить?
П.С. все фрагменты естесственно в стеке

Добавлено через 1 час 15 минут
Только что "откатил" до API 4.4 - проверил, работает!!! %) на 5м - 6м не пашет
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2016, 15:13     Googlemaps + onBackPressed
Посмотрите здесь:

wxWidgets и GoogleMaps
Как сохранить кэш улиц GoogleMaps
JavaScript GoogleMaps API
Ошибка в методе onBackPressed Android
Android GoogleMaps и эмулятор
При onBackPressed() фрагмент продолжает работать Android
Автокомплит + GoogleMaps Android
Android Запутался в фрагментах и транзакциях с GoogleMaps?
Android Проложение пути в GoogleMaps
Android Всплывающее окно с GoogleMaps
Обработать событие onBackPressed во фрагменте Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
25.08.2016, 16:03     Googlemaps + onBackPressed #2
Покажи весь код и скажи что не работает. Я ничего не понял.
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 126
26.08.2016, 13:32  [ТС]     Googlemaps + onBackPressed #3
Mikalai,
Цитата Сообщение от klim76 Посмотреть сообщение
т.е. при переходу на 2й фрагмент вью первого удаляется и больше отрисовываться не хочет в onCreateView при возврате не заходит.
Добавлено через 21 час 27 минут
па ма ги те
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
26.08.2016, 13:39     Googlemaps + onBackPressed #4
Цитата Сообщение от Mikalai Посмотреть сообщение
Покажи весь код
....
klim76
19 / 13 / 2
Регистрация: 10.06.2016
Сообщений: 126
26.08.2016, 13:59  [ТС]     Googlemaps + onBackPressed #5
Mikalai,
фрагмент1 с картой:
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
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.test_map, null);
 
        bundleTaxiAddress = ((MainActivity) getActivity()).getTmpAdress();
        if ( bundleTaxiAddress != null ){
            bundleLatLon = new LatLng(bundleTaxiAddress.getLatitude(),bundleTaxiAddress.getLongitude());
        }
 
        locationAddress = (TextView) v.findViewById(R.id.location_address);
        getLocation = (ImageView) v.findViewById(R.id.location_find);
        setLocation = (ImageView) v.findViewById(R.id.location_edit);
        getLocation.setOnClickListener(this);
        setLocation.setOnClickListener(this);
        /*FrameLayout containerMap = (FrameLayout) rootView.findViewById(R.id.container_map);
        View mapView = super.onCreateView(inflater, container, savedInstanceState);
        containerMap.addView(mapView, new FrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT));*/
        //api 21+
        mapFragment = (MapFragment) this.getChildFragmentManager().findFragmentById(R.id.container_map);
        //api20-
        //mapFragment = (MapFragment) getActivity().getFragmentManager().findFragmentById(R.id.container_map);
        mapFragment.getMapAsync(this);
 
        final ClientApplication application = (ClientApplication) getActivity().getApplication();
        client = application.getClient();
        latitude = client.getLocation().getLatitude();
        longitude = client.getLocation().getLongitude();
        order = ((MainActivity) getActivity()).getOrder();
 
        return v;
    }
Java
1
2
3
4
5
6
7
8
9
10
@Override
    public void onDestroyView() {
        super.onDestroyView();
        if (!getActivity().isFinishing()) {
            FragmentManager fm = getActivity().getFragmentManager();
            if(mapFragment != null) {
                fm.beginTransaction().remove(mapFragment).commit();
            }
        }
    }
фрагмент2 - проскто нажать кнопку назад. От франмента 2 ничего не зависит. с карты переход на несколько фрагментов ни с одного назад(на фрагмент1 с картой) не возвращается корректно
Yandex
Объявления
26.08.2016, 13:59     Googlemaps + onBackPressed
Ответ Создать тему
Опции темы

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