0

キー「map_mode」を使用して ListPreferenceを作成し、 MapActivity.javaで実際のマップ モードを設定したいと考えています。たとえば、[設定] 画面で [衛星] をクリックすると、マップ上で変更されます。

このsettings.xml (preference.xml)のような ListPreference セットアップがあります。

    <PreferenceCategory
        android:key="settings"
        android:title="Settings" >
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="map_settings"
        android:summary="Enable or Disable Map Settings"
        android:title="Enable Map Settings" />

    <ListPreference
        android:defaultValue="Map"
        android:dependency="map_settings"
        android:entries="@array/mapMode"
        android:entryValues="@array/mapModeValues"
        android:key="map_mode"
        android:summary="Change the display of the map"
        android:title="Map Mode" />
</PreferenceCategory>

「map_mode」は、このarrays.xmlから配列値を読み取ります。

<string-array name="mapMode">
    <item name="Map">Map</item>
    <item name="Satellite">Satellite</item>
    <item name="Traffic">Traffic</item>
</string-array>

<string-array name="mapModeValues">
    <item name="Map">Map</item>
    <item name="Satellite">Satellite</item>
    <item name="Traffic">Traffic</item>
</string-array>

ありがとうございました。

これがPreferenceScreenです。ユーザーがこれらのオプションのいずれかを押すと、MapActivity が更新されます。

設定画面地図活動

4

1 に答える 1

0

MapActivity電話registerOnSharedPreferenceChangeListener()してから、 で変更を処理SharedPreferenceしますOnSharedPreferenceChangeListener

onResume()または、あなたPreferenceActivityとあなたMapActivityが同時に画面に表示されることはないため、 の設定を読み直して適用するだけです。

于 2012-04-15T17:00:49.683 に答える