如何从我的应用程序共享首选项屏幕调用android设置

时间:2012-10-12 20:57:16

标签: android android-intent

我的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>

1 个答案:

答案 0 :(得分: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>