自定义适配器

在开发项目中自定义适配器,就是家常便饭,随处可见。首先先创建一个活动

//继承了自定义的活动
public class MonthlyBillsActivity extends MyBaseActivity{
	//自定义下拉刷新的listView
	private PullToRefreshListView listView;
	//存储数据
	private List<MonthlyBillsInfo>monthlyBillsInfos = new ArrayList<MonthlyBillsInfo>();
	//自定义适配器
	private MonthlyAdapter adapter;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.monthly_bills_activity);
		//获得数据
		initData();
		//初始化控件
		initView();
		//事件的监控
		initEvent();
		
	}

	private void initData() {
		MonthlyBillsInfo billsInfo = new MonthlyBillsInfo();
		billsInfo.setName("小华");
		billsInfo.setTitle("这里有好东西");
		billsInfo.setTime("2014-8-18 14:29");
		
		MonthlyBillsInfo billsInfo1 = new MonthlyBillsInfo();
		billsInfo1.setName("小明");
		billsInfo1.setTitle("往这看");
		billsInfo1.setTime("2014-8-18 14:30");

		MonthlyBillsInfo billsInfo2 = new MonthlyBillsInfo();
		billsInfo2.setName("小慧");
		billsInfo2.setTitle("好东西便宜卖了");
		billsInfo2.setTime("2014-8-18 14:35");
		
		monthlyBillsInfos.add(billsInfo);
		monthlyBillsInfos.add(billsInfo1);
		monthlyBillsInfos.add(billsInfo2);
	}
	
	private void initView() {
		//自定义ActionBar
		setHeadView(R.drawable.common_return_button, "", "", 0, "", null, null);
		//初始化listView
		listView =  (PullToRefreshListView) findViewById(R.id.monthly_bills_listView);
		listView.setScrollingWhileRefreshingEnabled(false);
		//实例化适配器
		adapter = new MonthlyAdapter(this, monthlyBillsInfos);
		//把适配器和listView关联起来
		listView.setAdapter(adapter);
		
	}
	private void initEvent() {
		//下拉刷新上拉添加
		listView.setOnRefreshListener(new OnRefreshListener2<ListView>() {
			@Override
			public void onPullDownToRefresh(
					PullToRefreshBase<ListView> refreshView) {
				new AddDataTask().execute();
			}

			@Override
			public void onPullUpToRefresh(
					PullToRefreshBase<ListView> refreshView) {
				new AppendDataTask().execute();
			}
		});
		//点击listView中的每一项
		listView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,
					long id) {
				
			}
		});
		ListView EaListView = listView.getRefreshableView();
		registerForContextMenu(EaListView);
	}
	private class AddDataTask extends AsyncTask<Void, Void, String[]> {
		@Override
		protected String[] doInBackground(Void... params) {
			return null;
		}

		@Override
		protected void onPostExecute(String[] result) {//刷新
			
		}
	}
	
	private class AppendDataTask extends AsyncTask<Void, Void, String[]> {
		@Override
		protected String[] doInBackground(Void... params) {
			return null;
		}

		@Override
		protected void onPostExecute(String[] result) {//加载
			

		}
	}
	
}

再建一个类存储数据

public class MonthlyBillsInfo {
	
	private String title;
	private String name;
	private String time;
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTime() {
		return time;
	}
	public void setTime(String time) {
		this.time = time;
	}
	
}


自定义适配器

public class MonthlyAdapter extends BaseAdapter {
	private Context context;
	private LayoutInflater inflater;
	private List<MonthlyBillsInfo> Mdata = null;
	
	

	public MonthlyAdapter(Context context, List<MonthlyBillsInfo> mdata) {
		super();
		this.context = context;
		Mdata = mdata;
		inflater = LayoutInflater.from(context);
	}

	@Override
	public int getCount() {
		//设置显示的条数
		return Mdata == null ? 0 : Mdata.size();
	}

	@Override
	public Object getItem(int position) {
		//每项所在的位置
		return Mdata.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		
		MonthlyViewHold holder;
		MonthlyBillsInfo info;
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.monthly_bills_listview_item,
					null);
			holder = new MonthlyViewHold(convertView) ;
			holder.monthly_title = (TextView) convertView.findViewById(R.id.monthly_title);
			holder.monthly_name = (TextView) convertView.findViewById(R.id.monthly_name);
			holder.monthly_time = (TextView) convertView.findViewById(R.id.monthly_time);
			convertView.setTag(holder);
		} else {
			holder =  (MonthlyViewHold) convertView.getTag();
		}
		info = this.Mdata.get(position);
		holder.monthly_title.setText(info.getTitle());
		String time = DateUtility.getDiffNum(info.getTime());
		holder.monthly_name.setText(info.getName());
		holder.monthly_time.setText(time);
		return convertView;
	}

}

	 class MonthlyViewHold {
		TextView monthly_title, monthly_name, monthly_time;
		@SuppressWarnings("unused")
		View baseView;

		MonthlyViewHold(View baseView) {
			this.baseView = baseView;
		}

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值