一个标准的自定义适配器的编写

来源:互联网 发布:大宗交易数据统计 编辑:程序博客网 时间:2024/06/05 05:01
package com.siyehuazhilian.control;import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.siyehuazhilian.smsdemo.R;import com.siyeuazhilian.model.SMS;public class MyListViewAdapter extends BaseAdapter {private ArrayList<SMS> list;private LayoutInflater inflater;private Context context;public void setList(ArrayList<SMS> list) {this.list = list;}public void addData(SMS sms) {if (list == null) {list = new ArrayList<SMS>();}list.add(sms);}public MyListViewAdapter(Context context) {this.context = context;inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {return list == null ? 0 : list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHodler hodler;if (convertView == null) {convertView = inflater.inflate(R.layout.sms_listview_item, null);hodler = new ViewHodler();hodler.intTextView = (TextView) convertView.findViewById(R.id.textview_smsin);hodler.outTextView = (TextView) convertView.findViewById(R.id.textview_smsout);// 设置tagconvertView.setTag(hodler);} else {hodler = (ViewHodler) convertView.getTag();}// 倒序问题position = getCount() - 1 - position;if (list.get(position).getType() == 1) {hodler.intTextView.setVisibility(View.VISIBLE);hodler.intTextView.setText(list.get(position).getBody());} else if (list.get(position).getType() == 2) {hodler.outTextView.setVisibility(View.VISIBLE);hodler.outTextView.setText(list.get(position).getBody());}return convertView;}class ViewHodler {TextView intTextView;TextView outTextView;}}


原创粉丝点击