ClassCastException: android.widget.LinearLayout $ LayoutParams

Así que obtener este error al ejecutar un adaptador en FinderActivity.class.

public class FinderActivity extends ListActivity { private List<String> itemsearchoptions = Arrays.asList( new String[] { "Search Service Center","Search Showroom", "Area Surveillance", "Nearest OAC Offices" }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.finder); getListView().setAdapter(new FinderListAdapter(this, this.itemsearchoptions));//cause of error } 

Aquí está My FinderAdapterclass:

 public class FinderListAdapter extends BaseAdapter { Context context; LayoutInflater inflater; private int[]icons = { R.drawable.icon_service_center, R.drawable.icon_car_showroom, R.drawable.icon_radar, R.drawable.icon_office }; private List<String>options = null; public FinderListAdapter(Context paramContext, List<String>paramList) { this.context = paramContext; this.options = paramList; this.inflater = LayoutInflater.from(paramContext); } @Override public int getCount() { return this.options.size(); } @Override public Object getItem(int paramInt) { return this.options.get(paramInt); } @Override public long getItemId(int paramInt) { return paramInt; } @Override public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) { String str = (String)this.options.get(paramInt); if(paramView == null) { } else { return paramView; } return paramViewGroup; } public boolean isEmpty() { return (this.options == null)||(this.options.size()==0); } private static class ViewHolder { ImageView finderIcon; TextView finderText; } } 

Utilicé LinearLayout en la lista de artículos

He leído varios problemas similares acerca de este error, pero aún no entiendo completamente el concepto. Así que cualquier ayuda será apreciada. Gracias

Editado: sorry olvidó el stacktrace

 07-08 15:31:42.380: E/AndroidRuntime(4550): FATAL EXCEPTION: main 07-08 15:31:42.380: E/AndroidRuntime(4550): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.ListView.measureScrapChild(ListView.java:1166) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.ListView.measureHeightOfChildren(ListView.java:1248) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.ListView.onMeasure(ListView.java:1158) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.View.measure(View.java:15525) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.View.measure(View.java:15525) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.View.measure(View.java:15525) 07-08 15:31:42.380: E/AndroidRuntime(4550): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 

Usa android.widget.AbsListView.LayoutParams lugar de android.widget.LinearLayout.LayoutParams en tus importaciones.

Un stacktrace de ClassCastException es bastante descriptivo …

Para el resto de ustedes que tienen el mismo problema. Por favor, al principio, corrija su método getView.

Trata de hacerlo así.

 public View getView(int i, View view, ViewGroup viewGroup) { LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View root; if(view == null){ root = layoutInflater.inflate(R.layout.yourLayout, null); } else { root = view; } return root; } 

Esto puede solucionar el android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams error.

Confía en mí, yo sólo frente a este problema exacto, pero logro resolver de esta manera.

  • Cómo mover 20dip margen izquierda del centro?
  • Cómo acceder al botón dentro de "incluir" el diseño
  • Stackoverflow: ¿Causado por vistas anidadas?
  • ¿Se puede omitir OnMeasure al agregar una vista a un grupo de vistas?
  • Cómo poner <o> en un botón de Android
  • LinearLayout de un WebView y un botón
  • ¿Cómo crear una vista que es más grande que la pantalla?
  • Hacer referencia a otro archivo layout.xml sin duplicarlo
  • Porcentaje de llenado de Android del diseño
  • Solamente los niños de retransmisión y no todo el árbol
  • Wrap_content height, pero limitado a la mitad de los padres
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.