2010-03-23 18 views
18

Veriler yerel bir DB'den alındıktan sonra bir imleç kullanılarak eşleştirilir. Özel Bağdaştırıcı, ListView'e benzer verileri görüntüler. Öğeler DB'den eklendiğinde/silindiğinde, bağdaştırıcının yenilenmesi beklenir. Aşağıda denenen çözüm, başlatıldığında uygulamayı çöker. Baska öneri? peşinAndroid: Uygulama başlatıldığında BaseAdapter'ı genişleten Özel ListAdapter çöküyor

sayesinde -D

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    ViewGroup p = parent;    
    if (v == null) { 
    LayoutInflater vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    v = vi.inflate(R.layout.items_row, p); 
    } 
    int size = mAdapter.getCount(); 
    Log.d(TAG, "position " + position + " Size " + size); 
    if(size != 0){ 
    if(position < size) return mAdapter.getView(position, v, p); 
    Log.d(TAG, "-position " + position + " Size " + size); 
    } 
    return null; 
} 

İstisna:

03-23 00:14:10.392: ERROR/AndroidRuntime(718): java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.widget.AdapterView.addView(AdapterView.java:461) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
03-23 00:14:10.392: ERROR/AndroidRuntime(718):  at com.xyz.abc.CustomSeparatedListAdapter.getView(CustomSeparatedListAdapter.java:90) 
... 

cevap

87
v = vi.inflate(R.layout.items_row, p); 

o çağrısına bir false üçüncü parametreyi ekleyin ve ben senin sorunun gidecek düşünüyorum. Çağrı haline gelmelidir:

v = vi.inflate(R.layout.items_row, p); 

v = vi.inflate(R.layout.items_row, p, false); 
+6

bir yıl sonra, bu açıklama hala kullanışlı için! teşekkürler ^^ – davogotland

+1

Aman Tanrım! Bunu zaten kabul et! – DeeV

+1

Bu cevap! Bu sorunu zaten yaşadım ama bu sefer bir süredir bu yana fazladan yanlış bir parametre koymayı unutmuşum ve bu kadarı düzeltildi. – rushinge

7

değişiklik bu kod

v = vi.inflate(R.layout.items_row, null); 
+0

uyarı! Yanlış cevap. Lütfen http://www.doubleencore.com/2013/05/layout-inflation-as-intended/ sayfasına bakın. – seanpj

İlgili konular