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

  • AllYourNewsByMe

    AllYourNewsB

    18 Temmuz 2011
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014