8
votes

Démarrer l'activité des en-têtes de préférence

Je suis implémentant des préfégeances N-COUCHE La préfecture de 1ère couche est chargée à partir d'en-têtes de préférence.

premier en-tête crée un fragment de réglages qui est un fragment préférant. Deuxièmement, une activité de navigateur (2ND est un exemple de développeur.Android.com) qui ouvre une URL spécifiée. Le troisième que je veux être un prochain niveau de préférence de la préférence qui sera également chargé à partir d'en-têtes de préférence. P>

Les deux premiers travaux bien, mais la 3ème collectionne une application à l'exception: P>

"Android.content.ActivitéNotfoundException: Aucune activité trouvée pour gérer l'intention {act = Android.Intente.action.Action. Voir dat = com.mycompany.myapp.ui.mypreferenceActivity} " p>

myPreFereneActivité déclarée dans le fichier manifeste. Probablement déclaration d'activité dans Main_headers.xml est fausse, mais je n'ai pas trouvé en références de conseil comment le faire correctement. J'ai essayé plusieurs variations, elles n'ont pas fait Travail. P>

Exemple J'ai utilisé: http://developer.android.com/reference /android/preference/preferenceActivity.html P>

Toutes les pensées Pourquoi cela ne fonctionne pas pour moi ou la manière dont la prochaine préfecture peut être appelée? Fondamentalement, j'ai juste besoin de démarrer une activité d'en-tête, qui devrait être vraiment simple mais je manque quelque chose. P> xxx pré>

Main_headers.xml: p>

<?xml version="1.0" encoding="utf-8"?>
<preference-headers
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <header android:title="Custom Settings"
        android:fragment="com.mycompany.myapp.ui.SettingsFragment" />

    <header android:title="Intent"
        android:summary="Launches an Intent.">
        <intent android:action="android.intent.action.VIEW"
                android:data="http://www.android.com" />
    </header>

    <header android:title="Another Preference Activity">
        <intent android:action="android.intent.action.VIEW"
            android:data="com.mycompany.myapp.ui.MyPreferenceActivity" />
    </header>
</preference-headers>


0 commentaires

3 Réponses :


18
votes

Si vous souhaitez démarrer une activité explicite de votre troisième préférence, faites ceci:

<intent android:targetPackage="com.mycompany.myapp"
        android:targetClass="com.mycompany.myapp.ui.MyPreferenceActivity" />


2 commentaires

Je me rends compte que c'est une vieille question. Savez-vous comment spécifier une intention pour le paquet Android par défaut? par exemple. Paramètres.Action_Add_Account ?


Travaillé avec moi, merci



0
votes

Si vous créez des préférences à l'aide de Java, vous pouvez obtenir le même résultat par

PreferenceScreen editPhoneNumbersScreen = getPreferenceManager().createPreferenceScreen(mContext);
    editPhoneNumbersScreen.setTitle(getResources().getString(R.string.change_add_emergency_numbers));
    editPhoneNumbersScreen.setSummary(getResources().getString(R.string.summary_add_no));


 Intent i = new Intent(getApplicationContext(),TargetActivity.class);
i.putExtra("change numbers", true);
        editPhoneNumbersScreen.setIntent(i);


0 commentaires

1
votes
<activity android:name=".activities.MyActivity" 
              android:label="@string/my_activity_title"
              android:theme="@android:style/Theme.Black.NoTitleBar">
        <intent-filter>
           <action android:name="com.example.myapp.activities.MyActivity" />
           <category android:name="android.intent.category.DEFAULT" />
       </intent-filter>
    </activity>

0 commentaires