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:
- Elemento de lista personalizada para ListView android
- Use locale (ltr / rtl) para gravedad en TextView
- Modificación del diseño del título de diálogo en Android
- addView no funciona
- SetClickable () no funciona en el botón
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)
- Diálogo de Android con diseño personalizado: devolver datos
- Cómo configurar la barra de progreso de android en el centro de la pantalla
- Cómo poner 9 botones en 3 filas en el diseño de Android xml?
- Android: match_parent se ignora cuando se utiliza addView
- Ocultar un diseño cuando el foco en él se pierde en XML
- Android: Elementos de interfaz de usuario sobre capa de lienzo
- Repita un diseño complejo para cada registro
- Android: ¿Cómo tamaño de botones?
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.