SetAdapter "La llamada requiere el nivel 11 de la API (el min actual es 8): android.widget.AbsListView # setAdapter"?

Estoy llamando al método setAdapter() en una clase que extiende Fragment . Tenga en cuenta que he importado android.support.v4.app.Fragment .

Sin embargo, obtengo un error que indica que el nivel de API se requiere para ser el nivel 11.

¿Qué debo hacer para poder solucionarlo sin cambiar minSdkVersion="8" a minSdkVersion="11"

 package foo.bar.qux; import java.util.Calendar; import java.util.Date; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import android.support.v4.app.Fragment; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class TabFragmentList extends Fragment { String category, xml; NodeList nodes; int numResults; private ListView lv; Date date; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) return null; return (LinearLayout) inflater.inflate(R.layout.eventlist, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Activity activity = getActivity(); if (activity != null) { final Calendar c = Calendar.getInstance(); ListContent[] item = new ListContent[3]; category = (String) activity.getIntent().getExtras() .get("category"); xml = (String) activity.getIntent().getExtras().get("xml"); TextView tv = (TextView) getView().findViewById(R.id.category); tv.setText(category); nodes = doc.getElementsByTagName("event"); for (int i = 0; i < 3; i++) { c.add(Calendar.DATE, 1); date = c.getTime(); item[i] = new ListContent(); item[i].setList(nodes, category, date); } EventListAdapter adapter = new EventListAdapter(activity, R.layout.eventlist_row, item); lv = (ListView) getView().findViewById(R.id.listView1); lv.setAdapter(adapter); // ERROR SHOWN HERE } } } 

Nota: He intentado reducir el targetSdkVersion a 10. Sin embargo, obtengo el error. ¡Por favor ayuda!

Edit: No entiendo por qué se denomina como AbsListVew cuando todo lo que he utilizado es un ListView . Además, tenga en cuenta que he utilizado un adaptador personalizado.

ArrayAdaptere<ListContent> extiende ArrayAdaptere<ListContent> y muestra NO ERROR.

Para su referencia aquí es el fragmento de código de diseño xml para R.id.ListView1

 <ListView android:layout_margin="10dp" android:dividerHeight="10.0sp" android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

Right click on the project folder > Android tools > Clear Link Markers

"Run Android Lint" hace que algunos marcadores y los marcadores causen este error.

La solución es sólo el tipo de casting para corregir el subtipo, ya que las versiones posteriores introdujeron la llamada del método con el mismo nombre.

 @SuppressWarnings({ "unchecked", "rawtypes" }) EventListAdapter adapter = new EventListAdapter(activity, R.layout.eventlist_row, item); lv = (ListView) getView().findViewById(R.id.listView1); ((AdapterView)lv).setAdapter(adapter); //ERROR SOLVED HERE 

Como se puede ver en el setAdapter() docs setAdapter() en AbsListView está disponible sólo desde el nivel 11 de la API. Así que no hay mucho que puedas hacer, puedes lanzar eventualmente tu AbsListView a ListView o GridView y luego llamar a setAdapter() .

He resuelto el "método abstracto no implementado error" mediante el casting mi método setAdapter como este:

  @SuppressWarnings("unchecked") public void setAdapterSDK8(Adapter adapter) { ((AdapterView) this).setAdapter(adapter); ((StaggeredGridView) this).setAdapter((ListAdapter) adapter); } 

Esto se relaciona con el gridview etsy escalonado

  • ¿Es preferible usar Activity.onAttachFragment o Fragment.onAttach para comunicarse entre una Actividad y un fragmento anidado?
  • Manejo de barras de acción con dos fragmentos
  • ¿Cómo cambiar el indicador de tablayout de arriba a abajo?
  • Java.lang.IllegalStateException: No se puede cambiar la etiqueta del fragmento
  • Agregue fragmentos al host Tab
  • Fragmento de Android OnCreateView llamado dos veces
  • ¿Cómo utilizo las preferencias compartidas en un fragmento de Android?
  • AddToBackStack () no funciona
  • Tabs y Swipe - editar el getItem para mostrar 3 fragmentos diferentes
  • Predeterminado bindPreferenceSummaryToValue se bloquea para tipos que no son de cadena
  • Pantalla completa DialogFragment se superpone con StatusBar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.