首页 > 代码库 > listview的getView里面返回LinearLayout,为何报错了?
listview的getView里面返回LinearLayout,为何报错了?
============问题描述============
@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub convertView = null; List<Map<String, Object>> _row = listItems.get(position); LinearLayout.LayoutParams _llp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT); LinearLayout _ll = new LinearLayout(context); _ll.setOrientation(LinearLayout.HORIZONTAL); _ll.setLayoutParams(_llp); for(int i=0; i<_row.size(); i++) { Map<String, Object> _cell = _row.get(i); LinearLayout.LayoutParams _cellP = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT, Float.parseFloat(_cell.get("weight").toString())); EditText _ed = new EditText(context); _ed.setText(_cell.get("value").toString()); if(_cell.get("type").equals("text")) _ed.setFilters(setEditable()); _ll.addView(_ed, _cellP); } return _ll; }
错误信息是:java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
在DDMS里面也没有具体定位哪里错了,逐步调试在return那里出错了,求解?
============解决方案1============
LinearLayout.LayoutParams _llp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.MATCH_PARENT);
这句代码导致的错误哦
============解决方案2============
因为你的这个LinearLayout是放在一个ListView中(ListView是AbsListView的子类),所以LinearLayout.setLayoutParameters()中应该放AbsListView.LayoutParameter这个类的对象。
listview的getView里面返回LinearLayout,为何报错了?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。