首页 > 代码库 > 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,为何报错了?