ClassCastException将标题添加到列表视图(ListFragment onCreateView)

时间:2014-11-26 02:45:22

标签: java android fragment

我有一个带有自定义适配器的列表视图,它呈现并且工作正常。当我尝试向列表视图添加标题时,应用程序崩溃了。我的标题是一个单独的布局xml文件,它有一个相对布局,左边有一个旋转器,右边有一个。

我给视图充气,操纵微调器添加数据,将其添加到列表视图中,当创建视图时应用程序不再有效,它会崩溃。

Java.lang.ClassCastException:android.widget.FrameLayout $ LayoutParams无法强制转换为android.widget.AbsListView $ LayoutParams。

我正在使用扩展列表片段的片段,而xml布局中只有一个列表。用于添加标头的代码位于onCreateView调用中,

        View view = inflater.inflate(R.layout.listview_layout, container, false);

        View header = (View)inflater.inflate(R.layout.header_layout, container, false);
        Spinner spinner1 = (Spinner)header.findViewById( R.id.spinner1 );

        //add pre-defined per page information
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                getActivity(),
                R.array.header_layout_spinner1, 
                android.R.layout.simple_spinner_item
        );
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter( adapter );

        Integer values[] = new Integer[100];
        for(int i=1;i<=100;i++)
        {
            pages[i-1] = i;
        }

        Spinner spinner2 = (Spinner)header.findViewById(R.id.spinner2); 
        ArrayAdapter<Integer> adapter2 = new ArrayAdapter<Integer>(getActivity(), android.R.layout.simple_spinner_item, values);
        spinner2.setAdapter(adapter2);

        //include header in the view
        ((ListView)view.findViewById(R.id.list)).addHeaderView(header);

1 个答案:

答案 0 :(得分:1)

尝试更改行...

View header = (View)inflater.inflate(R.layout.header_layout, container, false);

View header = (View)inflater.inflate(R.layout.header_layout, null, false);