studio ejemplo custom arrayadapter android

ejemplo - custom listview android



Android: Custom ListAdapter que extiende BaseAdapter se bloquea en el inicio de la aplicaciĆ³n (2)

cambiar este código

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

a

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

Los datos se extraen de una base de datos local y luego se asignan mediante un cursor. El adaptador personalizado muestra datos similares a un ListView. A medida que se agregan / eliminan elementos de la base de datos, se supone que el adaptador se actualizará. La solución que se intenta a continuación bloquea la aplicación en el inicio. ¿Alguna sugerencia?

Gracias de antemano

@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; }

Excepción:

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) ...


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

Agregue un tercer parámetro false a esa llamada y creo que su problema desaparecerá. La convocatoria debe convertirse en:

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