首页 > 解决方案 > Android MapsActivity - onclick 重新加载活动

问题描述

我在 MapsActivity 中有一个带有 3 个可点击按钮的谷歌地图。每个按钮在地图上显示不同的标记。

这是通过以下方式实现的:

 public void AllMap(View v) //first button
{
    SharedPreferences mypref = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor prefsEditr = mypref.edit();
    prefsEditr.putInt("mapselect", 1);
    prefsEditr.apply();

    finish();
    Button button = findViewById(R.id.allmap);
    button.setCompoundDrawablesWithIntrinsicBounds( 0, R.drawable.allmapon, 0, 0);
    button.setTextColor(Color.parseColor("#ff5722"));
    startActivity(getIntent());
}

然后在地图设置中,我阅读了 SharedPreferences 并根据所选选项在地图上添加标记。

这工作正常,但在我点击后,整个活动重新加载,但它似乎是一个从右到左的幻灯片动画。所以新重新加载的活动来自设备的右侧。

我没有动画或类似的设置,但似乎这是我设备上所有活动的默认行为。但是它在 MapsActivity 中似乎不是很好。有没有办法在不重新启动 MapsActivity 的情况下刷新它 - 所以只有标记会改变?

我应该叫什么而不是finish(); startActivity(getIntent());

标签: androidgoogle-maps

解决方案


我应该叫什么而不是finish(); 开始活动(getIntent());刷新地图?

mMap.clear()您可以通过调用并根据新的共享首选项值再次添加标记来清除所有现有标记。

或者

您可以将标记的引用保存在 arralist 或其他内容中,以便您可以更改它们在地图中的位置


推荐阅读