2013-07-16 34 views
7

ListView'de veri görüntüleyen bir uygulama oluşturuyorum. Veriler iki kategoride kategorize edilir (Popüler, Sık Kullanılanlar). Bir Etkinliğim ve iki Fragman var. Fragments, kategorilerine göre bir öğe listesi görüntüler. Bunun için bir ListView kullandım. Daha sonra, tasarımda tam olarak aynı olan ancak farklı görünüm kimlikleri olan, yani TVId1, TextViews için tvId2 olan iki fragment_layouts'um var. Fragmanlar'daki kodlar, yalnızca mizanpajtaki ilgili düzen ve görünümleri referans alarak farklılık gösterir. JSON biçimindeki bir URL'den veri alıyorum. Ancak her bir kategori, aynı yapıyı yalnızca farklı veriler üreten farklı bir URL kümesine sahiptir. Sonra her Fragmandaki ilgili URL'yi ayrıştırıp ListView'i buna göre doldururum. Her şey şu ana kadar çalışıyor.Android - Birden çok kez bir Fragmanı Instantiate?

Bilmek istediğim bir parçacığı kullanabileceğim bir yöntem var mı ve her biri farklı veri kümesiyle iki kez kullanabilir miyim? Bu şekilde yeni bir kategori gelirse başka bir Fragman yaratmak zorunda kalmam.

Herhangi bir yardımı için teşekkür ederiz.

cevap

10

Elbette yapabilirsin. Aslında bunu böyle yapmalısın.

Fragment oluştururken, new Fragment(); kullanmayın. Verileri argüman olarak alan statik yeni bir islev fonksiyonu oluşturun.

public static MyFragment newInstance(int type) { 
    MyFragment fragment = new MyFragment(); 
    Bundle args = new Bundle(); 
    args.putInt("type", type); 
    fragment.setArguments(args); 
    return fragment; 
} 

Ve sonra aşağıda kullanarak onCreate üzerinde tipini() metodu alabilirsiniz:

getArguments().getInt("type"); 

Ve sonra türünü olsun, buna göre webservice arayabilir ve sonra Views ayarlayabilirsiniz buna göre.

+0

Çok teşekkürler. Bir çekicilik gibi çalıştı. Beni çok fazla sorundan kurtardı. Oy verirdim ama henüz yeterince itibarım yok. – user2469412

+0

Sorun değil. :) Mutlu kodlama. – tasomaniac

İlgili konular