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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Kassem G

    Kassem G

    25 EKİM 2006
  • Kiddyzuzaa

    Kiddyzuzaa

    25 ŞUBAT 2014