调用invalidateOptionsMenu

时间:2017-06-20 09:37:54

标签: android google-maps android-spinner oncreateoptionsmenu

我已经将onNewIntent(intent)添加到我的活动中,所以当它被调用时它应该放大我地图上的特定位置然后调用invalidateOptionsMenu(),以便可以调用onCreateOptionsMenu()并更新我的微调器操作栏,其中包含新位置的名称。问题是在我向onNewIntent()添加invalidateOptionsMenu()之后,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;
    }

感谢。

0 个答案:

没有答案