共享首选项修改mapView的视图

时间:2012-12-03 16:11:12

标签: java android android-layout settings

我需要有比我更多经验的人的帮助,我已经开始不太时间研究如何为Android编写应用程序,但无论如何,我解释了这个问题。

在我的应用程序中,我想使用3 checkboxPreference更改模式以查看地图(sat,traffic,streetView)。我创建了一个只有选择的选项菜单,然后选择,使用3复选框打开布局。

    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:key="Sat"
android:title="Satellitare" android:summary="Mappa con vista satellitare"
        android:defaultValue="false" />
    <CheckBoxPreference android:key="Traff"
android:title="Traffico" android:summary="Mappa con vista traffico"
        android:defaultValue="false" />
    <CheckBoxPreference android:key="StrView"
android:title="StreetView" android:summary="Mappa con vista Street View" 
       android:defaultValue="false" />
</PreferenceScreen>

布局类文件Impostazioni.java。

package com.drive.info;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Impostazioni extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.menu_navi);
    }

} 

在另一个文件Navi.java中,我拥有运行地图所需的所有代码。所有功能:具有基本视图的地图(无坐标或其他设置),选项menù和布局工作。

如何使用复选框更改地图设置?

感谢任何能帮助我的人!

1 个答案:

答案 0 :(得分:0)

获取包含您的偏好活动数据的SharedPreferences对象:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

现在获得所需的值:

boolean sat = prefs.getBoolean("Sat", false);
boolean traff = prefs.getBoolean("Traff", false);
boolean streetView = prefs.getBoolean("StrView", false);

并将其设置在MapView

mapView.setSatellite(sat);
mapView.setTraffic(traff);
mapView.setStreetView(streetView);

顺便说一下,setStreetView已被弃用:

  

已过时。不再支持街景可用性突出显示。此方法作为无操作运行。

所以我不使用它会导致地图发生任何变化。