ClassCastException异常:android.widget.LinearLayout $的LayoutParams [英] ClassCastException: android.widget.LinearLayout$LayoutParams

查看:443
本文介绍了ClassCastException异常:android.widget.LinearLayout $的LayoutParams的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我执行的FinderActivity.class适配器时出现此错误。

 公共类FinderActivity扩展ListActivity
{
    私人列表<字符串> itemsearchoptions = Arrays.asList(
            新的String []
                    {
                        搜索服务中心,搜索的展示厅,
                        区域监视,最近OAC办公室
                    });
    @覆盖
    保护无效的onCreate(包savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.finder);


        getListView()setAdapter(新FinderListAdapter(这一点,this.itemsearchoptions));错误//原因


    }
 

下面是我的FinderAdapterclass:

 公共类FinderListAdapter扩展了BaseAdapter
{
    上下文语境;
    LayoutInflater充气;
    私人INT []图标=
    {
        R.drawable.icon_service_center,
        R.drawable.icon_car_showroom,
        R.drawable.icon_radar,
        R.drawable.icon_office
    };
    私人列表<字符串>选项= NULL;

    公共FinderListAdapter(上下文paramContext,列表和LT;字符串> paramList)
    {
        this.context = paramContext;
        this.options = paramList;
        this.inflater = LayoutInflater.from(paramContext);
    }

    @覆盖
    公众诠释getCount将()
    {
        返回this.options.size();
    }

    @覆盖
    公共对象的getItem(INT paramInt)
    {
        返回this.options.get(paramInt);
    }

    @覆盖
    众长getItemId(INT paramInt)
    {
        返回paramInt;
    }


    @覆盖
    公共查看getView(INT paramInt,查看paramView,ViewGroup中paramViewGroup)
    {
        字符串str =(字符串)this.options.get(paramInt);

        如果(paramView == NULL)
        {

        }
        其他
        {

            返回paramView;
        }
        返回paramViewGroup;
    }
    公共布尔的isEmpty()
    {
        返回(this.options == NULL)||(this.options.size()== 0);
    }

    私有静态类ViewHolder
    {
        ImageView的finderIcon;
        TextView的finderText;
    }
}
 

我用的LinearLayout项目列表

我看了一下这个错误的几种类似的问题,但还没有完全理解这个概念。因此,任何帮助将AP preciated。谢谢

编辑:对不起,忘了堆栈跟踪

  07-08 15:31:42.380:E / AndroidRuntime(4550):致命异常:主要
07-08 15:31:42.380:E / AndroidRuntime(4550):java.lang.ClassCastException:android.widget.LinearLayout $的LayoutParams不能转换为android.widget.AbsListView $的LayoutParams
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.ListView.measureScrapChild(ListView.java:1166)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.ListView.measureHeightOfChildren(ListView.java:1248)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.ListView.onMeasure(ListView.java:1158)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.View.measure(View.java:15525)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.View.measure(View.java:15525)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.View.measure(View.java:15525)
07-08 15:31:42.380:E / AndroidRuntime(4550):在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
 

解决方案

使用 android.widget.AbsListView.LayoutParams 而不是 android.widget .LinearLayout.LayoutParams 在你的进口。

一个ClassCastException堆栈跟踪是pretty的描述...

So i get this error when executing an adapter in 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


    }

Here is 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;
    }
}

I used LinearLayout on the item list

I have read several similar problems about this error, but yet to fully understand the concept. So any help will be appreciated. thanks

edited : sorry forgot the 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)

解决方案

Use android.widget.AbsListView.LayoutParams instead of the android.widget.LinearLayout.LayoutParams in your imports.

A ClassCastException stacktrace is pretty descriptive...

这篇关于ClassCastException异常:android.widget.LinearLayout $的LayoutParams的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆