2012-10-03 13 views
6

Ich möchte Fragmente in meiner Anwendung verwenden, aber ich kann FragmentActivity nicht erweitern, da meine Anwendung bereits eine Aktivität erweitert, die Teil einer Bibliothek ist. Da dies bedeutet, dass ich getSupportFragmentManager() nicht aufrufen kann, suche ich nach einer Problemumgehung, die es mir erlauben würde, Fragmente zu verwenden, ohne FragmentActivity zu erweitern. Ist es möglich?Abrufen von SupportFragmentManager ohne Erweitern von FragmentActivity

+1

Dies ist leider nicht möglich. Ist die Bibliothek von Ihnen oder Open Source? Sie können die Aktivität, die Sie erweitern, ändern und dafür sorgen, dass sie FragmentActivity statt Aktivität erweitert. –

+0

Sind Sie sicher? Ich habe irgendwo gelesen, dass es möglich ist, etwas Interface-Magie zu benutzen. Die Bibliothek ist zwar Open Source, aber ich wollte sie nicht ändern, um sie weiterhin aus dem Repository zu aktualisieren. – JohnEye

+1

Ich bin mir nicht sicher, wie es richtig ausgeführt werden könnte, ohne die Fragment-Aktivität zu erweitern. Haben Sie darüber nachgedacht, den Bibliotheksentwickler nach Fragment Support zu fragen? –

Antwort

2

Ihre Bibliothek muss die FragmentActivity erweitern.

Ich wäre besorgt über eine Bibliothek, die erfordert, dass Sie ihre Basisaktivitäten sowieso verwenden.

Wie bereits erwähnt (wenn möglich) greifen Sie den Bibliotheksquellcode und fügen Sie ihn als Bibliotheksprojekt hinzu, um die Klasse zu verfinstern und seine Aktivitäten um die Klasse FragmentActivity zu erweitern.

+0

der youtube player api für android ist solch eine library. Dazu müssen Sie von YouTubeBaseActivity erben. – kritzikratzi

+0

@kritzikratzi Youtube api hat möglicherweise eine 'YouTubeSupportBaseActivity'. Es ist schlechtes Design zu erben, sollte immer komponieren. Richten Sie einen Fehler auf b.google.com –

+0

ein. Es gibt keine YouTubeSupportBaseActivity. Es gibt auch keine solche Sache wie b.google.com – kritzikratzi