le démarrage d'une activité de preferences.xml
Je vais essayer d'aller à l'écran des paramètres trouvés à -
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS
À partir d'une entrée dans mes préférences de l'activité mais j'ai pas de chance. Pour le moment, en appuyant sur l'entrée actualise simplement le même écran que j'ai été sur.
Mon preferences.xml ressemble à ceci:
<Preference
android:title="@string/my_location_settings">
<intent android:action="android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS">
</intent>
</Preference>
Et mon manifeste entrée ressemble à ceci:
<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>
Ce que je fais mal?
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)
Manifeste:
<?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 (
désolé pour le manque de mise en forme):
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);
}
}
et preferences.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>
Quel est le logcat dire? Aussi, vous pouvez poster à l'entrée du manifeste pour le principal de votre page de préférences? Celui que vous continuez à recevoir en retour?
C'est le manifeste d'entrée pour ma page principale préférences, le logcat:
12-11 15:53:34.170: INFO/ActivityManager(173): Démarrage de l'activité: l'Intention { act=android.fournisseur de.Les paramètres.ACTION_LOCATION_SOURCE_SETTINGS cmp=com.mon.app/.Préférences } 12-11 15:53:34.400: INFO/ActivityManager(173): Affiche l'activité com.mon.app/.Préférences: 229 ms (total 229 ms)
Je n'ai toujours pas voir l'entrée du manifeste pour la page principale, seulement pour la personne que vous essayez d'obtenir.
oh désolé, l'un Im essayant de gagner est la partie de l'os android, j'ai également l'obtenir à l'aide d'une boîte d'alerte à l'aide de la consolidés: l'Intention myLocationOptionsIntent = new Intent( android.fournisseur de.Les paramètres.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(myLocationOptionsIntent); Ce qui porte les Lieux & les paramètres de Sécurité en vertu de la liste des Paramètres Android
C'est le manifeste d'entrée pour ma page principale préférences, le logcat:
12-11 15:53:34.170: INFO/ActivityManager(173): Démarrage de l'activité: l'Intention { act=android.fournisseur de.Les paramètres.ACTION_LOCATION_SOURCE_SETTINGS cmp=com.mon.app/.Préférences } 12-11 15:53:34.400: INFO/ActivityManager(173): Affiche l'activité com.mon.app/.Préférences: 229 ms (total 229 ms)
Je n'ai toujours pas voir l'entrée du manifeste pour la page principale, seulement pour la personne que vous essayez d'obtenir.
oh désolé, l'un Im essayant de gagner est la partie de l'os android, j'ai également l'obtenir à l'aide d'une boîte d'alerte à l'aide de la consolidés: l'Intention myLocationOptionsIntent = new Intent( android.fournisseur de.Les paramètres.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(myLocationOptionsIntent); Ce qui porte les Lieux & les paramètres de Sécurité en vertu de la liste des Paramètres Android
OriginalL'auteur qubz | 2010-12-11
Vous devez vous connecter pour publier un commentaire.
D'accord, je crois que je comprends, vous êtes - vous confus au sujet de ce qu'est un intent-filter est.
Votre entrée du manifeste dit:
C'est la définition de votre activité [votre package].Les préférences.
Préférences sera déclenchée à chaque fois que quelqu'un commence une intention avec ACTION_LOCATION_SOURCE_SETTINGS comme le nom de l'action...
Ce qui est censé être l'option par défaut pour cette action.
Évidemment, vous ne voulez pas utiliser l'API Android nom de l'action pour votre activité (sauf si vous êtes en essayant de fournir une alternative à Android intégré dans l'emplacement source de l'activité). Utiliser un autre nom de l'action pour votre écran principal des préférences, de préférence quelque chose avec votre nom de paquet.
EDIT: Aussi, essayez d'utiliser un PreferenceScreen:
Bonne chance! Laissez-moi savoir comment cela fonctionne!
Je ne suis pas encore avoir de la chance, parce que je sens que je ne sais pas vraiment ce que je fais. Êtes-vous en disant: - je changer le nom de l'action dans le manifeste et le preferences.xml fichier? Si je fais ça, comment vais-je commencer à l'emplacement souhaité de la source de l'activité?
Pas de. Changer le nom de l'action de votre ".Préférences" de l'activité. Gardez tout de même. Si vous avez encore des problèmes, de publier la totalité du fichier manifeste.
Pas d'amour, j'ai changé le nom de l'action dans le manifeste de - <action android:name="com.mon.app.PRÉFÉRENCES" /> mais pas de joie. Ill après l'ensemble du manifeste et des Préférences de l'activité et de preferences.xml dans l'OP
OriginalL'auteur EboMike
Rien ne fonctionne pour moi, donc j'ai fait: (je pense que c'est une mauvaise idée, mais...)
1.Supprimer ce filtre de manifester
1. Faire de préférence plus facile
2. Ajouter Clicklistener dans votre PreferenceFragment
P. S. Désolé pour mon anglais
Il a travaillé pour moi..
OriginalL'auteur Slava Lipchenko