1

我需要比我更有经验的人的帮助,我不久前就开始研究如何为 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 中,我拥有运行地图所需的所有代码。所有功能:带有基本视图的地图(无坐或其他设置)、选项菜单和布局工作。

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

感谢任何会帮助我的人!

4

1 回答 1

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已弃用:

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

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

于 2012-12-03T16:26:56.517 回答