1、继承ArrayAdapter
public class TimerDataAdapter extends ArrayAdapter<TimerDataListItem> { //数据ID int dataResourceID = 0; //内容 private Context mContext; //数据列表 private List<TimerDataListItem> mtimerDataList; private TextView area = null; private TextView dev = null; private TextView val = null; private TextView limit = null; private TextView updatetime = null; //构造函数 public TimerDataAdapter(Context context, int dataResourceId,List<TimerDataListItem> timerDataList) { super(context, dataResourceId,timerDataList); this.dataResourceID = dataResourceId; this.mContext = context; this.mtimerDataList = timerDataList; } @Override public int getCount() { return mtimerDataList.size(); } @Override public TimerDataListItem getItem(int position) { return mtimerDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TimerDataListItem item = getItem(position); if(item != null) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate( dataResourceID, null); area = (TextView) convertView.findViewById(R.id.array_area); dev = (TextView) convertView.findViewById(R.id.array_dev); val = (TextView) convertView.findViewById(R.id.array_data); limit = (TextView) convertView.findViewById(R.id.array_limit); updatetime = (TextView) convertView.findViewById(R.id.array_updatetime); } area.setText(item.getArea()); dev.setText(item.getDev()); val.setText(item.getVal()); limit.setText(item.getlimit()); updatetime.setText(item.getUpdatetime()); int status = item.getStatus(); if (status == 0) { val.setBackgroundColor(0xFF156BCC);//0代表正常 } else if (status == 1) { val.setBackgroundColor(0xFFFE3044);//1代表不正常 } else { val.setBackgroundColor(0xFFF2EC10);//2代表超时数值 } } return convertView; } }
2、Fragment中设置Adapter
mAdapter = new TimerDataAdapter(this.getActivity() ,R.layout.fragment_timerdata_list_item,mtimerDataList);
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //实例化fragment布局。动态的有grid和list俩种 View view = inflater.inflate(R.layout.fragment_timerdata_list, container, false); View headerView = inflater.inflate(R.layout.fragment_timerdata_list_header, null); mListView = (ListView) view.findViewById(android.R.id.list); mListView.addHeaderView(headerView); // Set the adapter mListView.setAdapter(mAdapter); mswipeLayout =(SwipeRefreshLayout)view.findViewById(R.id.id_swipe_ly); mswipeLayout.setOnRefreshListener(this); mswipeLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_blue_light, android.R.color.holo_blue_light, android.R.color.holo_blue_light); return view; }
3、使用swiperefreshlayout 下拉刷新
布局
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe_ly" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:drawSelectorOnTop="false" android:fastScrollEnabled="true"/> <!--<TextView android:id="@android:id/empty" --> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent" --> <!--android:gravity="center" />--> </android.support.v4.widget.SwipeRefreshLayout>
刷新
@Override public void onRefresh() { mHandler.sendEmptyMessageDelayed(0, 2000); } private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { getTimerData(); mAdapter.notifyDataSetChanged(); mswipeLayout.setRefreshing(false); } };
4、空指针异常 java.lang.NullPointerException
Adapter中getView内声明控件变量有关,出现刷新Adapter错误