2013-04-14 16 views
15

Intentからシステムのロケーション設定を起動したいとします。私はプログラムでは、この設定場所の設定インフルエンスXMLファイル

Intent viewIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
startActivity(viewIntent); 

ようになっていることを知っているが、私はPreferenceのXMLからそれを行う必要があります。私はいつもActivityNotFoundExceptionを取得し、私はこの

<Preference 
    android:title="@string/pref_title" > 
    <intent android:action="android.settings.ACTION_LOCATION_SOURCE_SETTINGS" /> 
</Preference> 

ようにしようとしたが、それは動作しません。 XMLインテントからそのシステムのロケーション設定を起動するにはどうすればよいですか?

答えて

33

あなたが作成することができます:あなたの好みを表しますPreferenceActivityをして、あなたはこのようなあなたの好みにonClickを割り当てることができます。

Preference goToLocationSettings = (Preference) findPreference("goToLocationSettings"); 
goToLocationSettings.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 
      Intent viewIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      startActivity(viewIntent); 

      return true; 
     } 
    }); 

そして、あなたはXMLファイルで、あなたの好みにキーを割り当てる必要があります:

<Preference 
    android:key="goToLocationSettings" 
    android:title="@string/pref_title" /> 
+1

I appreciaあなたの答えを教えてください。それは、XMLからそのアクションを呼び出す方法がないということですか? – Jago

+0

私は方法に精通していないと私はないと思います。 –

+0

私は 'AndroidRuntimeException'を取得しています:"アクティビティの外から 'StartActivity()'を呼び出しています "。私はこれが 'onPreferenceClick()'のコンテキストのためだと思います... – Jago

0

は、このコードを試してみてください。

<PreferenceScreen 
    android:key="key_location" 
    android:summary="location settings" 
    android:title="Open location settings"> 

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

</PreferenceScreen> 
関連する問題