Frage

Ich bin hier ein bisschen ein Problem. Was ich tun möchte, ist eine Aktivität starten aus der PreferenceActivity. Also meine preference.xml, die die Vorliebe Layout sieht wie folgt aus hält:

<Preference android:title="Launch Activity" >
   <intent android:action="org.momo.SOME_ACTIVITY" />
</Preference>

Das Manifest ist sich der Aktivität I gestartet werden soll ..

<activity android:label="@string/app_name" android:name="SomeActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="org.momo.SOME_ACTIVITY" />
        </intent-filter>
    </activity>

erraten, was, ich bin eine Sicherheitsausnahme bekommen (Permission Denial), wenn ich es starten möchten. Bin ich etwas fehlt? Mein Verständnis von Absichten ist noch etwas unvollständig, aber ich dachte, dass es muss Arbeit auf diese Weise.

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

scheint eine Intent-Filter zu machen wie eine etwas Umwegen, dies zu tun. Dies ist ein einfacher Ansatz:

<PreferenceScreen
    android:title="@string/settings.title" 
    android:summary="@string/settings.summary">
    <intent
        android:targetPackage="com.companyname.appname"
        android:targetClass="com.companyname.appname.classname"/>
</PreferenceScreen>

Andere Tipps

Vollarbeits Beispiel In Ihrem preference.xml

<Preference 
        android:title="@string/settings_title_notification_silent_mode"
        android:summary="@string/settings_title_notification_silent_mode_summary">
  <intent
   android:action="com.activity.SilentModeList"/> <!-- SilentModeList its activity -->
  </Preference>

In Ihrem manifest.xml

      <activity android:name="com.activity.SilentModeList"
            android:label="@string/ac_settings_description">
           <intent-filter>
               <action android:name="com.activity.SilentModeList" />
               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
      </activity>

ich meinen Fall all meine XML-Einstellungen korrekt waren.

Aber die Aktivität I (genannt AppPreferences) ins Leben gerufen wegen schlechten refractoring gab es in zu Orten: [package].AppPreferences und [[package].commmon.Preferences Wegen einer import common._ wurde dies als die Aktivität zu nehmen und natürlich war es nicht im Android Manifest erklärt. Ich habe gerade die zweite Aktivität von meinem Code und voilà löschen!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top