Für jede Aktivität definiert zuzugreifen, die einen logischen Elternteil wir die übergeordnete Aktivität im Manifest definiert wie folgt:, wie die Klasse der Aktivität in parentActivityName
<activity
android:name=".ui.activity.MyActivity"
android:label="@string/activity_title"
android:parentActivityName=".ui.activity.ParentActivity"
android:theme="@style/My.Theme" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.activity.ParentActivity" />
</activity>
Gibt es eine Möglichkeit, die Klasse für den Zugriff verwiesen entweder @parentActivityName
oder [email protected]
in MyActivity? (Bitte beachten Sie, dass ich nicht auf die übergeordnete Activity-Instanz, nur die Klasse zugreifen möchte)
Der Grund ist, dass wir für Tracking-Zwecke einen Pfad-wie Zeichenfolge für jede Aktivität generieren möchten. In diesem Fall wäre dieser String /parent_activity/my_activity
- und da die Hierarchie bereits im Manifest definiert ist, wäre der beste Fall, dort auf ihn zuzugreifen, um ihn dann zweimal zu definieren.
Vielen Dank für Ihre Hilfe!
Ja, das hat geholfen, danke! Ich kann diese Methode jedoch nicht direkt verwenden, da childActivity ein Objekt und keine Klasse ist (und daher nicht für Hierarchien funktionieren würde, die tiefer als zwei Ebenen sind). ABER ich werde versuchen, [die alte Implementierung dieser Methode] zu verwenden (https://android.googlesource.com/platform/frameworks/support/+/c9cf2eb0a9b6694d0fda3dbc313844955db60820/v4/java/android/support/v4/app/NavUtils.java # 182) als Referenz, um rekursiv durch die Hierarchie zu gehen, basierend auf dem Namen der Klasse/Komponente. Versuche es und melde mich zurück. – marcorei
Das hat den Job gemacht. Ich habe 'NavUtils.getParentActivityName (Context, ComponentName)' 'verwendet und den' ComponentName' mit dem App-Kontext und dem Klassennamen erstellt. – marcorei