重写BaseAdapter

public class HallListAdapter extends BaseAdapter {
private LayoutInflater mInflater;
DBController dbController=new DBController();
private TextView zero;
private TextView title;
private TextView cream;
private Button ztime;
private TextView zname;
private View view;
private TextView zpic;
private Button ftime;
private TextView fname;
private TextView fpic;
private TextView time;
List<Map<String, Object>> list=dbController.getListData();

public HallListAdapter(Context context){
this.mInflater=LayoutInflater.from(context);
}
//放回当前的adapter当中共包含多少个item
public int getCount() {
return dbController.getListData().size();
}
//根据位置得到相应的Item对象
public Object getItem(int position) {
return dbController.getListData().get(position);
}
//根据位置得到相应的item对象的Id
public long getItemId(int position) {
return position;
}

//listView通过调用GetView方法得到相应的view对象,并显示在相应的activity之中
public View getView(int position, View convertView, ViewGroup parent) {
view=mInflater.inflate(R.layout.hall_item,null);
control();

zero.setText((String)list.get(position).get("AreaName"));
title.setText((String)list.get(position).get("Title"));
Boolean ifCream=Boolean.getBoolean(list.get(position).get("Elite").toString());
if(ifCream){
cream.setText("jinghua");
}
ztime.setText((String)list.get(position).get("ProsDuration"));
zname.setText((String)list.get(position).get("ProsName"));
// zpic.setText((String)list.get(position).get("ProPic"));
ftime.setText((String)list.get(position).get("ConDuration"));
fname.setText((String)list.get(position).get("ConName"));
// fpic.setText((String)list.get(position).get("ConPic"));
time.setText((String)list.get(position).get("Data"));
return view;
}
public void control(){
zero=(TextView)view.findViewById(R.id.zero);
title=(TextView)view.findViewById(R.id.title);
cream=(TextView)view.findViewById(R.id.cream);
ztime=(Button)view.findViewById(R.id.ztime);
zname=(TextView)view.findViewById(R.id.zname);
zpic=(TextView)view.findViewById(R.id.zpic);
ftime=(Button)view.findViewById(R.id.ftime);
fname=(TextView)view.findViewById(R.id.fname);
fpic=(TextView)view.findViewById(R.id.fpic);
time=(TextView)view.findViewById(R.id.time);
}
}

======================================================================================================

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.zhiduan.android.demo.pk4fun.db.Area;
import com.zhiduan.android.demo.pk4fun.db.DBManager;
import com.zhiduan.android.demo.pk4fun.db.Person;
import com.zhiduan.android.demo.pk4fun.db.Voice;
import com.zhiduan.android.demo.pk4fun.db.Wrangle;

public class DBController {

private DBManager dbManager;
private int pid = -1;

public DBController() {
dbManager = new DBManager();
}
public List<Map<String, Object>> getListData() {
List<Wrangle> wrangleList = dbManager.getWrangleList();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < wrangleList.size(); i++) {
Wrangle wrangle = (Wrangle) wrangleList.get(i);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("AreaName", getAreaName(wrangle.getAreaId()).toString());//休闲区
map.put("Title", wrangle.getTitle());//抬杠主题
map.put("Elite", wrangle.getElite());//是否精华boolean
map.put("ProsDuration", getDuration(wrangle.getProsId()));//正方时长
map.put("ProsName", getName());//正方的名字
map.put("ProsPic", getPic());//正的头像
map.put("ConDuration", getDuration(wrangle.getConsId()));//反方时长
map.put("ConName", getName());//反方的名字
map.put("ConPic", getPic());//反方的头像
map.put("Date", getDate(wrangle.getBeginTime()));//时间
list.add(map);
}
return list;
}

private String getAreaName(int id) {
List<Area> areaList = dbManager.getAreaList();
for (int i = 0; i < areaList.size(); i++) {
Area area = (Area) areaList.get(i);
if (area.getId() == id) {
return area.getName();
}
}
return null;
}

private String getDuration(int id) {
List<Voice> voiceList = dbManager.getVoiceList();
for (int i = 0; i < voiceList.size(); i++) {
Voice voice = (Voice) voiceList.get(i);
if (voice.getId() == id) {
pid = voice.getPId();
return voice.getDuration();
}
}
return null;
}

private String getName() {
List<Person> personList = dbManager.getPersonList();
for (int i = 0; i < personList.size(); i++) {
Person person = (Person) personList.get(i);
if (person.getId() == pid) {
return person.getName();
}
}
return null;
}

private String getPic() {
List<Person> personList = dbManager.getPersonList();
for (int i = 0; i < personList.size(); i++) {
Person person = (Person) personList.get(i);
if (person.getId() == pid) {
return person.getPic();
}
}
return "file:///android_asset/nopic.jpg";
}

private String getDate(Date beginDate) {
DecimalFormat df = new DecimalFormat("00");
Calendar cal = Calendar.getInstance();
Date nowDate = cal.getTime();
int d = (int) ((nowDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000));
switch (d) {
case 0:
return "今天 " + df.format(beginDate.getHours()) + ":"
+ df.format(beginDate.getMinutes());
case 1:
return "昨天 " + df.format(beginDate.getHours()) + ":"
+ df.format(beginDate.getMinutes());
case 2:
return "前天 " + df.format(beginDate.getHours()) + ":"
+ df.format(beginDate.getMinutes());
}
return df.format(beginDate.getMonth() + 1) + "-"
+ df.format(beginDate.getDate()) + " "
+ df.format(beginDate.getHours()) + ":"
+ df.format(beginDate.getMinutes());
}
}

posted @ 2012-09-20 18:00  言程序  阅读(891)  评论(0)    收藏  举报