2015-07-31 30 views
17

Ben TableLayout içine biraz Fragment eklendi ve benim konteyner Activity onları yönetmek isteyen, bu yüzden bu kullandı:Görünümden Nasıl Parça Alabilirim?

Fragment fragment = (Fragment) tableLayout.getChildAt(i); 

ama getChildAt(int) bir View döner ve bir ViewFragment

+0

Parçayı nasıl eklersiniz? XML ile etiketleri veya Java FragmentManager kullanarak? – Nachi

+0

FragmentManager'ı kullanarak bunları ekledim – Mohammad7G

cevap

25

Neden insanlar sorunuzu reddediyor anlamıyorum. Fragments, özellikle yeni başlayanlar için çok kafa karıştırıcı olabilir. Sorunu anlamak için, Fragment'un ne olduğunu ve nasıl kullanıldığını öğrenmelisiniz.

Başlamak için, bir View ekranda varolan bir şeydir. Örnekler şunlardır: TextView, EditText, Button, vs. XML "düzenleri" içine yerleştirilir. Bu düzenler Activity kullanılarak gösterilmiştir.

Şimdi, Fragment, View değil. Ekranda hiç bir varlığı yok. Bunun yerine, sadece bir "düzen" i yöneten bir sınıftır - bir Activity'a benzer. Fragmanınızın onCreateView() tarafından döndürülen Görünümüne ihtiyacınız varsa, Activity içinde findViewById()'u doğrudan kullanabilirsiniz. Bu

getFragmentManager() 
    .beginTransaction() 
    .replace(R.id.fragment_container_viewgroup, myFragment, FRAGMENT_TAG) 
    .commit(); 

gibi programlı Fragment eklediyseniz

1) kullanabilirsiniz:

Eğer Fragment bir başvuru gerekiyorsa

, bunu yapmanın iki yolu vardır

MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag(FRAGMENT_TAG); 

2) Eğer böyle bir XML layout'ta Fragment eklediyseniz:

<fragment android:name="com.example.android.fragments.HeadlinesFragment" 
    android:id="@+id/fragmentContainer" 
    android:layout_weight="1" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" /> 

Bunu kullanabilirsiniz:

getFragmentManager().findFragmentById(R.id.fragmentContainer); 

Temelde, her Aktivite tüm aktif Fragments koruyan bir FragmentManager sınıfı vardır ve onları bulma iki yol vardır: Bir gösterirken geçmek benzersiz TAG kullanma fragman veya parçanın eklendiği kap görünümü-ID'sinin geçirilmesi.

2

You için dökme DEĞİL olabilir böyle bir parça alamıyorum. Bir etiketle fragman eklemeniz ve bu etikete göre yeniden oluşturmanız gerekecek.

getFragmentManager().beginTransaction().add(R.id.container, fragment, "tagTofindFragment"); 

parçasını almak için:

İşte tagTofindFragment
fragment = getFragmentManager().findFragmentByTag("tagTofindFragment"); 

sizin parçaları arasında benzersiz olması gerektiğini etikettir

bir parçası aşağıdakileri yapın ekleyin.

İlgili konular