`

ListView getView生成Item

 
阅读更多

很简单的啦:

 

public class GenerateItemViewOfGroup extends BaseAdapter
{

	private Context mContext;
	
	private List<String> listOfGroup;
	
	private int sizeOfGroupList;
	
	public GenerateItemViewOfGroup(Context context, List<String> listOfGroup)//将数据传递进来
	{
		mContext = context;
		this.listOfGroup = listOfGroup;
		sizeOfGroupList = listOfGroup.size();
	}
	
	
	class ViewHolder
	{
		
		TextView tvGroupName;//分组的名字
		
		LinearLayout llGroupBg;//item的背景
		
	}
	
	
	
	/**
	 * 
	 * 
	 * */
	public View getView(int position, View convertView, ViewGroup parent) 
	{
		
		ViewHolder viewHolder;
		
		if(convertView == null)//组件重用!!!给力啊!
		{
			LayoutInflater myInflater = LayoutInflater.from(mContext);
			
			convertView = myInflater.inflate(R.layout.contact_group_list_item_default, null);//取出每一项的模板
			
			viewHolder = new ViewHolder();
			
			viewHolder.llGroupBg = (LinearLayout)convertView.findViewById(R.id.cglid_ll);
			
			viewHolder.tvGroupName = (TextView)convertView.findViewById(R.id.cglid_tv_content);
			
			convertView.setTag(viewHolder);
		}
		else
		{
			
			viewHolder = (ViewHolder)convertView.getTag();
			
		}
		
		String groupName = listOfGroup.get(position);
		
		viewHolder.tvGroupName.setText(groupName);
		
		return convertView;
	}
	
/**
*要返回的Item的数量,要是是0,就不会显示出来了
*/
	public int getCount() {
		// TODO Auto-generated method stub
		return sizeOfGroupList;
	}

	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	

}
 

使用

 

List<String> listOfGroup = AddANewGroup.queryCurrentGroupInfo(this);//获得数据源
		
GenerateItemViewOfGroup myItemView = new GenerateItemViewOfGroup(this, listOfGroup);
		
lvOfGroup.setAdapter(myItemView);
 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics