Как я могу получить это для отображения маркера на картах Google? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь передать координаты и заголовок, полученный при клике по RSS-каналу, и я хочу передать его в карты Google из отладки, которую он проходит без проблем, моя проблема отображает его на карте. Вот онклик с намерением:

       public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            Intent in = new Intent(getApplicationContext(), MapsActivity.class);
            String georss = ((TextView) view.findViewById(R.id.georss)).getText().toString();
            String title = ((TextView) view.findViewById(R.id.title)).getText().toString();
            String[] latLng = georss.split(" ");
            double lat = Double.parseDouble(latLng[0]);
            double lng = Double.parseDouble(latLng[1]);;
            LatLng location = new LatLng(lat, lng);
            in.putExtra("location", location);
            in.putExtra("title", title);
            startActivity(in);
        }
    });

, а вот карты Google при создании:

        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        Intent intent = getIntent();
        intent.getStringExtra("title");
        intent.getStringExtra("location");

Я просто не уверен, как отобразить маркер, поэтому при нажатии на нем вы можете увидеть заголовок.

1 Ответ

1 голос
/ 26 марта 2020
intent.getStringExtra("location");

Параметром location является LatLang, а не String, поэтому вы не можете получить местоположение из намерения. Поэтому лучше отправлять lat и lng отдельно.

...
in.putExtra("lat", lat);
in.putExtra("lng", lng);
startActivity(in);

...
Intent intent = getIntent();
double lat = intent.getDoubleExtra("lat", 0);
double lng = intent.getDoubleExtra("lng", 0);
...

[Edit]

Или вы можете анализировать данные LatLang следующим образом.

...
in.putExtra("location", location);
startActivity(in);

...
Intent intent = getIntent();
LatLng location = (LatLng) intent.getExtras().get("location");
...

Делая так Вы можете получить данные объекта из намерения. Но в этом случае вы должны проверить ключ, иначе местоположение может быть нулевым. Благодаря.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...