1

我已将 onNewIntent(intent) 添加到我的活动中,因此当它被调用时,它应该放大我地图上的特定位置,然后调用 invalidateOptionsMenu(),以便可以调用 onCreateOptionsMenu() 并使用更新我的操作栏中的微调器新位置的名称。问题是在我将 invalidateOptionsMenu() 添加到 onNewIntent() 之后,animateCamera 始终显示我添加到微调器的第一个位置。例如,我有三个位置(伦敦、巴黎、米兰),我添加了另一个(纽约),它应该缩放到纽约,但它总是缩放到伦敦。这是我的代码。

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);





        final String name = intent.getStringExtra("name");

        ArrayList<String> loc = helper.getLocation(name);  //here i get the coordinates for the location from database

        String lat = loc.get(0);
        String lng = loc.get(1);

        double lat1 = Double.parseDouble(lat);
        double lng1 = Double.parseDouble(lng);
        LatLng tochka = new LatLng(lat1, lng1);
        CameraUpdate camera = CameraUpdateFactory.newLatLngZoom(tochka, 17);
        map.animateCamera(camera);
        map.addMarker(new MarkerOptions().position(tochka).title(name));



        invalidateOptionsMenu();


@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.spinner, menu);

        MenuItem item = menu.findItem(R.id.spinner);
        spinner = (Spinner) MenuItemCompat.getActionView(item);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, Locations);

        adapter.setDropDownViewResource(R.layout.row);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
        return true;
    }

谢谢。

4

0 回答 0