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?
cevap
Roboguice 1.x, uyumlu kitaplık ve parçalarla uyumlu değildir. Ya beta olan 2.0'ı hareket ettirmeniz veya Fragment * sınıflarını kendiniz uzatmanız gerekecektir.
fazla bilgi mevcuttur:
http://groups.google.com/group/roboguice/browse_thread/thread/2858bc10b83b6beb
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.
Teşekkürler Kral. Gerçekte anlamlı şeyler yaptığınız veya bulduğunuz parçaları bulabileceğiniz herhangi bir kodunuz var mı? – danb
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
Bunun işe yaradığından emin misiniz? Ben Roboguice 2.0 ile denediğimde Ben IllegalArgumentException: MyFragmentActivity bir RoboGuice bağlamı (instanceof RoboContext) '' –
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? –
Ayrıca, uyumluluk kütüphanesinin hangi sürümünü kullanıyorsunuz? –
Ben de çalışıyorum. –