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

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009