2

我的 android 应用程序中有一个共享首选项文件。在我的首选项文件 (xml) 中,我有多个 CheckBoxPreferences。我想添加另一个首选项,以便当用户按下它时,他将获得 android 位置首选项 (gps)。

我试图将其添加到我的 pref 文件中:

 <Preference xmlns:android="http://schemas.android.com/apk/res/android"
        android:key="pref_key_gpsStatus"
        android:title="Gps Settings" />

并尝试在 onPreferenceClick 和 onSharedPreferenceChanged 上捕获它并按意图调用 gps 设置:

startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));

当我点击首选项时,什么也没发生。

我尝试的另一件事是在 xml 文件中:

<Preference xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="pref_key_gpsStatus"
    android:title="Gps Settings" />


    <intent 
        android:action="android.settings.WIRELESS_SETTINGS"/>

和..仍然没有发生任何事情。

有人有想法吗?

谢谢!

这是完整的 pref.xml 文件:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
    android:defaultValue="true"
    android:key="@string/pref_key_shakeSense"
    android:summaryOff="@string/shakeOff"
    android:summaryOn="@string/shakeOn"
    android:title="@string/shakeSence" />

<CheckBoxPreference
    android:defaultValue="true"
    android:key="@string/pref_key_locationViewShots"
    android:summaryOff="@string/displayOff"
    android:summaryOn="@string/displayOn"
    android:title="@string/locationViewShots" />

<CheckBoxPreference
    android:defaultValue="true"
    android:key="@string/pref_key_sound"
    android:summaryOff="@string/soundOff"
    android:summaryOn="@string/soundOn"
    android:title="@string/speakUserLocation" />

<CheckBoxPreference
    android:defaultValue="false"
    android:key="@string/pref_key_Zoom"
    android:summaryOff="@string/notActive"
    android:summaryOn="@string/active"
    android:title="@string/autoZoom" />

<Preference 
    android:key="pref_key_gpsStatus"
    android:title="Gps Settings" />
    <intent android:action="android.settings.WIRELESS_SETTINGS"/>
</PreferenceScreen>
4

1 回答 1

0

在此代码段中,意图超出了偏好。

<Preference xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="pref_key_gpsStatus"
    android:title="Gps Settings" />


<intent android:action="android.settings.WIRELESS_SETTINGS"/>

您应该将其作为首选项的一部分附上:

<Preference xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="pref_key_gpsStatus"
    android:title="Gps Settings" >


    <intent android:action="android.settings.WIRELESS_SETTINGS"/>

</Preference>
于 2012-10-12T23:41:10.823 回答