2011-11-27 22 views
14

Parçalar + RoboGuice kullanımıyla ilgili çalışan bir örnek bulma konusunda sorunlar yaşıyorum. Android parça işlem yöneticisi ile parçaları eklemeyi/kaldırmayı denediğinizde sorun olur. Parçanın RoboFragment'ten miras aldığını söylerseniz, işlem yöneticisi artık sınıfın bir parça olduğunu düşünmez (RoboFragmenti uzattığı için). Ancak RoboGuice'in kendi parça yöneticisini kullanabilirsiniz ancak aynı zamanda çöküyor. RoboGuice fragmanlarının dinamik olarak eklenmesi/çıkarılmasıyla ilgili örnekler var mı?Android'de fragmanlar ile roboguice kullanarak herhangi bir basit örnek?

+0

Bir uygulamada güzel çalışan RoboGuice ve Fragments'ım var. Sorunun ne olduğunu görebilmemiz için yığın izlemeyi sağlayabilir misiniz? –

+0

Ayrıca, uyumluluk kütüphanesinin hangi sürümünü kullanıyorsunuz? –

+0

Ben de çalışıyorum. –

cevap

13

Geçenlerde yeni bir proje üzerinde parçalarını kullanmaya başladıktan ve aşağıdaki Ben devralan değilim ben

kullanıyorum kodudur RoboFragment sınıfından, ancak aşağıdaki satırları onCreate ve onViewCreated yöntemlerime ekleyerek tam olarak aynı şeyi yapıyorum. RoboFragment'ten miras alma, farklı davranmamalı, gerçekte bu RoboFragment'in neye benzediğidir.

Açıkçası ayrıca onCreateView üzerinde de uygulamıştım.

Daha sonra, Etkinliğimde, compatibility package'u kullanırken FragmentActivity özelliğini genişletiyorum. Not, ön API düzey 11 ile uyumluluk istiyorsanız, FragmentActivity kullanmanız gerekir. Yalnızca 11 destekliyorsanız ve uyumluluk lib'una ihtiyacınız yoksa FragementActivity kullanmanız gerekmez. Etkinliğimde, parçamı sayfama eklemek için aşağıdakileri kullanıyorum.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.add(R.id.fragmentHolder, new MyFragment()); 
transaction.commit(); 

R.id.fragmentHolder'ın tipi bir FrameLayout türüdür.

Her şey bununla iyi çalışıyor ve tüm enjekte edilen kaynakları ve görünümlerimi parçamda kullanabiliyorum. Tamlık için Android 2.2.1'e karşı uyumluluk-v4 kütüphanesinin r6 versiyonu ile en yeni 2.0-SNAPSHOT roboguice kullanıyorum.

+0

Teşekkürler Kral. Gerçekte anlamlı şeyler yaptığınız veya bulduğunuz parçaları bulabileceğiniz herhangi bir kodunuz var mı? – danb

+1

Korkarım ki, bir Fragmandaki bir Etkinlik ile yapabileceğiniz her şeyi yapabilmeniz gerekir. Tek farklı bölüm, doğrudan bir iletişim kurmaması gerektiğinden, verileri bir Fragmandan diğerine geçirmektir. Bu yaklaşımı gördüğüm yol, onCreate() öğesindeki getActivity() türünü kontrol etmek ve parçanın verilerini kabul etmek için oluşturduğunuz arabirimin olduğundan emin olmaktır. Bu şekilde Etkinliğiniz bu arayüzü uygulayabilir ve gerekirse bir sonraki bölüme veri iletebilir. – Kingamajick

+0

Bunun işe yaradığından emin misiniz? Ben Roboguice 2.0 ile denediğimde Ben IllegalArgumentException: MyFragmentActivity bir RoboGuice bağlamı (instanceof RoboContext) '' –