Basit olması gereken bir sorum var ama bunu çözemiyorum.Özel arrayadapter kullanmadan liste öğeleri göster
DragSortListView kullanıyorum. Her bir liste görünümü öğesinin orijinal konumuna sahip bir etiket vermek istiyorum. Kullanıcı yeniden siparişi verdiğinde, orijinal kimliğe sahip bir dize döndürmek istiyorum (kullanıcı ilk öğeyi sonuncuya taşıdıysa 2,3,4,1 gibi). Bir öğe silinirse, orignal kimliğini de bilmek isterim.
İşte kodum.
DragSortListView mainListView = (DragSortListView) findViewById(R.id.list_pages);
String[] names = settings.getString("pages", "Error,error").split(",");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(names));
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.row, list);
mainListView.setAdapter(adapter);
DragSortController controller = new DragSortController(mainListView);
...
Şimdi tüm öğeler arasında geçiş yapıp orijinal kimlikleriyle etiketler vermenin en iyi olacağını düşündüm. Ben adaptör ayarlanmış olsa bile, ancak bu liste görünümü boş görünüyor bu
for (int i = 0; i < mainListView.getCount(); i++)
{
View v = mainListView.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.text);
tx.setTag(i);
}
gibi bir şey kullanarak öğeleri döngü çalışıyorum.
Özel bir ArrayAdapter kullanamıyorum, çünkü bir öğe düşürüldüğünde veya kaydırıldığında uygulama çökecektir.
Ek bilgi: Veriler bir yayın tarafından bir BroadcastReceiver kullanılarak döndürüldüğünde liste görünümü doldurulur. Bunun bunu etkilediğini sanmıyorum, ama asla bilemezsiniz.
Sorum: Daha Sonra onu erişebilmesi
- nasıl, her liste-ürün orijinal pozisyonunu saklamak?
Şimdiden teşekkürler! Eğer özel bir Adapter
kullanmak istemiyorsanız
Gerçekten yararlı cevap, teşekkürler Ahmed! Bu farklı bir bağdaştırıcı olduğundan, hala setDropListener() 've' setRemoveListener() 'değiştirdim, ancak bunu anlayacağım. Yaptığım anda, bunu tamamlandı olarak işaretleyeceğim :) Tekrar teşekkürler! –
Bitti! Bu cevap mükemmeldi. Teşekkürler! –