Android: запуск Google maps с помощью intent с вкладки и нажатие кнопки «Назад»

#android

#Android

Вопрос:

В моем приложении у меня есть tabhost с одной вкладкой для «карты»

При нажатии на карту я запускаю новое действие, в рамках которого я запускаю карту Google с использованием намерения.

Теперь, когда я нажимаю клавишу «Назад», я получаю вид вкладки с нажатой вкладкой карты и под пустым экраном.

Если я снова нажму на карту, экран останется прежним, карта больше не будет запущена.

Как я могу отображать карту всякий раз, когда я нажимаю «Карта». Как будто я нажимаю любую другую вкладку и снова нажимаю карту, она должна отображать карту.

Вот мой код, запускающий карту:

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setMapView();
    }

private void setMapView() {
        // get lat , log here
        Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
                Uri.parse("geo:"   latitude   ","   longitude  "?z=10" ) );
        startActivity(intent);

    }
  

Комментарии:

1. Опубликуйте некоторый код, показывающий, как вы запускаете карту.

2. я добавил это к своему вопросу. Спасибо

Ответ №1:

Похоже, вы запускаете действие, которое затем немедленно запускает действие с картой. Это слишком сложно, и это создает проблемы для вас. Избавьтесь от активности в середине. Вы могли бы просто открыть действие, написав свой собственный onTabChangeListener для TabHost.

Другая проблема заключается в том, что вы запускаете действие, когда пользователь выбирает вкладку. Это сбивает с толку поведение. Было бы более уместно открыть вашу активность на карте с помощью кнопки или пункта меню. Код внутри setMapView() вместо этого должен перейти в метод onClick для любого элемента управления, который вы решите использовать.

Комментарии:

1. внедрение onTAbCHangeListener решает мою проблему. Я реализовал, если tabid является тем, который используется для карты, а затем запускает действие карты. Спасибо. Можете ли вы сказать мне, как мы можем показать конкретное местоположение, отмеченное на карте, когда мы используем intent для карты.