【发布时间】:2013-07-30 16:37:14
【问题描述】:
首先,我已经想出了如何解决这个错误,但此时我只是想知道为什么我的修复工作有效。我遇到的情况是,当我尝试执行以下操作时收到了ClassCastException, cannot convert LinearLayout$LayoutParams to AbsListView$LayoutParams(为了这些目的而进行了简化):
mLayout = (LinearLayout) getLayoutInflater()
.inflate(R.layout.my_header_layout,
getListView(), false);
mRootView.addView(mLayout);
getListView().addHeaderView(mLayout);
getListView().setAdapter(mAdapter);
我最终打破了它,发现当我删除对mRootView.addView(mLayout)的调用时问题已解决
我的两个问题是,为什么会发生这种情况?首先,在概念方面,为什么当标题视图已经在布局中时,整个东西就死了?是因为该视图实际上试图布局两次:一次用于标题,一次用于实际布局?
其次,为什么会出现这个异常?它看起来非常不具描述性,而且看起来根本没有捕捉到实际问题?这是因为较低级别的函数无论如何都会在结果上失败而没有处理高级问题的情况吗?
【问题讨论】:
-
您是否 100% 确定您没有更改任何其他内容?
-
嗯,看来晚上休息让我健忘,我已经根据我如何能够重现然后修复这个问题更新了这个问题。
标签: android listview android-listview