我想在 MapActivity.java 中设置 ListPreference,使用键“map_mode”设置实际的地图模式。因此,当我在“首选项”屏幕中单击“卫星”时,它会在地图上更改。
我有一个像这样 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。
答案 0 :(得分:0)
让您MapActivity
来电registerOnSharedPreferenceChangeListener()
,然后处理SharedPreference
中的OnSharedPreferenceChangeListener
更改。
或者,只需在onResume()
中重新阅读并应用偏好设置,因为您的PreferenceActivity
和MapActivity
不会同时出现在屏幕上。