avviare un'attività da preferences.xml

Sto cercando di andare alla schermata delle impostazioni trovata in –

android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS 

Da una voce nelle mie preferenze, ma non ho fortuna. Al momento, premendo la voce appena aggiorna la stessa schermata come ero su.

  • HTML5 Audio non è in grado di riprodurre Javascript a less che non venga triggersta una volta manualmente
  • Come aggiungere libgdx come visualizzazione di sotto in android
  • Come bloccare il telefono in modo programmato android
  • Google Maps Android API v2 creando un nuovo LocationSource
  • timeout di ksoap dietro proxy in android
  • l'adb logcat si blocca con il messaggio "in attesa del dispositivo"
  • Le mie preferences.xml sembra questo:

     <Preference android:title="@string/my_location_settings"> <intent android:action="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS"> </intent> </Preference> 

    E la mia voce manifesta sembra così:

     <activity android:name=".Preferences"> <intent-filter> <action android:name="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

    Che cosa sto facendo di sbagliato?

    logcat:

     12-11 15:53:34.170: INFO/ActivityManager(173): Starting activity: Intent { act=android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS cmp=com.my.app/.Preferences } 12-11 15:53:34.400: INFO/ActivityManager(173): Displayed activity com.my.app/.Preferences: 229 ms (total 229 ms) 

    Manifesto:

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

      <activity android:name=".ViewActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MyPageOneActivity"> </activity> <activity android:name=".MyPageTwoActivity"> </activity> <activity android:name=".MyPageThreeActivity"> </activity> <activity android:name=".Preferences"> <intent-filter> <action android:name="com.my.app.PREFERENCES" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="4" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> </uses-permission> </manifest> 

    Preferences.java (mi dispiace per la mancanza di formattazione):

      package com.my.app; import android.os.Bundle; import android.preference.PreferenceActivity; public class Preferences extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } 

    e preferenze.xml:

     <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <EditTextPreference android:title="Address 1" android:key="customURLOne" android:summary="Enter a new address for 1"> </EditTextPreference> <EditTextPreference android:title="Address 2" android:key="customURLTwo" android:summary="Enter a new address for 2"> </EditTextPreference> <EditTextPreference android:title="Address 3" android:key="customURLThree" android:summary="Enter a new address for 3"> </EditTextPreference> <Preference android:title="@string/my_location_settings"> <intent android:action="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS"> </intent> </Preference> 

  • Modifica delle impostazioni della barra degli strumenti Android
  • Come implementare l'evento e debind il concetto in Android?
  • replaceAll non sostituisce string
  • Perché FloatBuffer invece di float ?
  • Non è ansible aggiungere più frammenti a LinearLayout
  • problema con una vista di text
  • 2 Solutions collect form web for “avviare un'attività da preferences.xml”

    Okay, credo di capire – potrebbe essere poco chiaro di ciò che è un filter d'intenti.

    La tua voce manifesto dice:

     <activity android:name=".Preferences"> 

    Questa è la definizione per la tua attività chiamata [il tuo pacchetto] .Preferenze.

      <intent-filter> <action android:name="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS" /> 

    Le preferenze verranno triggerste each volta che qualcuno inizia l'intenzione con ACTION_LOCATION_SOURCE_SETTINGS come nome dell'azione …

      <category android:name="android.intent.category.DEFAULT" /> 

    Questo dovrebbe essere l'opzione predefinita per quell'azione.

      </intent-filter> </activity> 

    Ovviamente, non si desidera utilizzare un nome di azione Android API per la tua attività (a less che non si desideri fornire un'alternativa all'attività di origine di posizione incorporata di Android). Utilizzare un nome di azione diverso per la schermata delle preferenze principali, preferibilmente con il nome del pacchetto in esso.

    EDIT: Inoltre, prova ad utilizzare un PreferenceScreen:

     <PreferenceScreen android:title="@string/my_location_settings"> <intent android:action="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS"> </intent> </PreferenceScreen> 

    Niente funziona per me così ho fatto: (credo che sia una ctriggers idea, ma …)

    1. Rimuovere questo filter dal manifesto

     <intent-filter> <action android:name="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 

    1. Fare preferenza più facile

     <Preference android:key="simple_key" android:title="@string/title_simple_key"> </Preference> 

    2. Aggiunta Clicklistener nel tuo frammento di preferenza

      @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.preferences); // Load the preferences from an XML resource findPreference("simple_key").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { startActivity(new Intent( android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); return false; } }); } 

    PS Scusa per il mio inglese

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.