Verschachtelte innere Aktivitätsklasse in Android

8

Deklariert eine Klasse die Aktivität in einer anderen Aktivitätsklasse? Wenn ja, wie würde ich diese Klasse im Manifest registrieren? Auch, ist das etwas, das vernünftigerweise getan werden kann oder ist es eine schlechte Idee?

Ich habe an etwas wie

gedacht %Vor%

Beachten Sie, dass die Syntax offensichtlich nicht zu 100% korrekt ist, meistens Pseudocode.

    
Falmarri 29.10.2010, 18:56
quelle

3 Antworten

1

Nein, das ist nicht möglich. Immerhin muss das Android-Betriebssystem die Aktivität instanziieren, wenn es zu einem beliebigen Zeitpunkt gestartet wird (zB wenn Sie es über eine Absicht starten), und es ist unmöglich, ein ItemClass ohne ein Elternteil ListClass zu instanziieren.

Denken Sie daran, dass jede Aktivität völlig unabhängig ist und jederzeit durch eine Absicht gestartet werden kann.

    
EboMike 29.10.2010, 18:58
quelle
10

Ja, es funktioniert - es ist nur eine andere Klasse - Sie müssen Ihre Aktivität nur mit der internen Klassennotation in AndroidManifest.xml deklarieren:

  

& lt; Aktivität android: name=". ListClass $ ItemClass" / & gt;

Scheint, für mich gut zu funktionieren, aber vielleicht, wenn diese Frage gestellt wurde, wurde es in älteren Versionen von Android nicht unterstützt?

Ich bin mir nicht sicher, WARUM Sie das tun möchten, aber Sie können.

    
DustinB 23.02.2012 19:08
quelle
1

Ich wäre auch neugierig, warum du das machen willst.

Ich sehe jedoch keinen Grund, warum es nicht funktionieren würde. Kannst du es nicht im AndroidManifest wie gewohnt referenzieren, solange beide Klassen öffentlich sind? d. h. com.falmarri.ListClass.ItemClass?

Edit: Nevermind, das funktioniert nicht, wie EboMike darauf hingewiesen hat.

    
Brandon O'Rourke 29.10.2010 19:02
quelle