SORU
8 Temmuz 2010, PERŞEMBE


Liste Görünümü içinde ArrayAdapter değiştirmek mümkün: UnsupportedOperationException

Adlarını içeren bir liste yapmaya çalışıyorum. Bu liste değiştirilebilir (ekleme, silme, sıralama, vb.) olmalıdır. Bu ArrayAdapter öğeleri değiştirmeye çalıştım ancak, her ne zaman, programı, java.lang.UnsupportedOperationException hata ile kaza yaptı. İşte benim kod:

ListView panel = (ListView) findViewById(R.id.panel);
String[] array = {"a","b","c","d","e","f","g"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, array);
adapter.setNotifyOnChange(true);
panel.setAdapter(adapter);

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
      adapter.insert("h", 7);
   }
});

Ekle ve kaldır yöntemleri açık denedim, hiçbiri işe yaramadı. Birisi yanlış ne yaptım, söyle bana?

CEVAP
8 Temmuz 2010, PERŞEMBE


Kendimi işe yaramadı tespit çalıştım. I ArrayAdapter kaynak kodunu kontrol edin ve sorun fark ettim. Bu ArrayAdapter, bir dizi tarafından başlatılmış, değiştirilemez olan bir AbstractList (Liste) dizisine dönüştürür.

Çözüm Bu ArrayAdapter başlatılırken bir dizi kullanmak yerine ArrayList<String> kullanın.

String[] array = {"a","b","c","d","e","f","g"}; 
ArrayList<String> lst = new ArrayList<String>(Arrays.asList(array));
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, lst); 

Şerefe!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007
  • VJ VIMANA

    VJ VIMANA

    3 Mayıs 2007