android 列表开发 ListView

时间:2023-03-09 06:56:40
android 列表开发 ListView

1、android 端

二个entity

consultInfo:

private String name;

private String id;

consultInfoRef

private iList<ConsultInfo>  tems

private String ret;

private String createTime;

private String msg;

一个Adapter

adapter = new Adapter();..

Holder 条目属性

class Holder

{

TextVeiw xx

}

3、请求

4、服务端

实例代码:

package com.gc.app.jsk.activity.mine;

import java.util.ArrayList;

import android.content.Intent;
import android.os.Message;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.TextView; import com.gc.app.jsk.base.BaseActivity;
import com.gc.app.jsk.base.MyApplication;
import com.gc.app.jsk.entity.ConsultInfo;
import com.gc.app.jsk.entity.ConsultInfoRef;
import com.gc.app.jsk.entity.EvalEntity;
import com.gc.app.jsk.entity.RequestMessage;
import com.gc.app.jsk.view.CircleImageView;
import com.gc.app.jsk_2.R;
import com.handmark.pulltorefresh.library.PullToRefreshListView; /**
*
* @Description: 历史咨询列表 */
public class MyConsultListActivity extends BaseActivity implements
OnItemClickListener { private TextView mTitle; private ArrayList<ConsultInfo> list = new ArrayList<ConsultInfo>(); private PullToRefreshListView consultlist_view; private final static int CONSULT_LIST = 1;//历史咨询列表 private BaseAdapter adapter = new BaseAdapter() { @Override
public View getView(int position, View convertView, ViewGroup parent) { ConsultInfo consultInfo = list.get(position); ViewHolder holder; if (convertView == null) {
convertView = LayoutInflater.from(MyConsultListActivity.this)
.inflate(R.layout.item_consult_list, null);
holder = new ViewHolder();
holder.item_circleImageView = (CircleImageView) convertView
.findViewById(R.id.doctorHead);
holder.item_doctorName = (TextView) convertView
.findViewById(R.id.doctorName);
holder.item_deptCat = (TextView) convertView
.findViewById(R.id.deptCat);
holder.item_consultDate = (TextView) convertView
.findViewById(R.id.consultDate);
holder.item_lastMsg = (TextView) convertView.findViewById(R.id.lastMsg);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
} /** 此处需要做image Resource 判空处理 */
if (consultInfo.getPhoto() != null
&& consultInfo.getPhoto().length() > 0) {
MyApplication.iLoader.displayImage(consultInfo.getPhoto(),
holder.item_circleImageView);
}
holder.item_doctorName.setText(consultInfo.getDoctorName());
holder.item_deptCat.setText(consultInfo.getDeptCatName());
holder.item_consultDate.setText("2015-07-09");
holder.item_lastMsg.setText("上海国臣");
return convertView;
} @Override
public long getItemId(int position) {
return position;
} @Override
public Object getItem(int position) {
return list.get(position);
} @Override
public int getCount() {
return list.size();
}
}; @Override
public void onClick(View view) { if (view.getId() == R.id.btn_back) {
finish();
}
} @Override
protected void initComponent() {
setContentView(R.layout.activity_consult_list);
mTitle = (TextView) findViewById(R.id.text_title);
consultlist_view = (PullToRefreshListView) findViewById(R.id.consultlist_view);
consultlist_view.setAdapter(adapter);
mTitle.setText("我的咨询");
} /**
* 数据初始化
*/
@Override
protected void initData() {
consultList();
} @Override
protected void registerListener() {
consultlist_view.setOnItemClickListener(this);
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finishActivity();
return true;
}
return super.onKeyDown(keyCode, event);
} class ViewHolder {
CircleImageView item_circleImageView;
TextView item_doctorName;
TextView item_deptCat;
TextView item_consultDate;
TextView item_lastMsg;
} @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
EvalEntity evalEntity = (EvalEntity) parent.getAdapter().getItem(
position); if (evalEntity != null) {
Intent intent = new Intent(this, EvaluationActivity.class); intent.putExtra("evalEntity", evalEntity); startActivity(intent);
}
} @Override
public boolean handleMessage(Message msg) { switch (msg.what) {
case 0:
if (msg.arg1 == RET_OK) {
// String retStr = msg.obj.toString();
// EvalJson json = gson.fromJson(retStr, EvalJson.class);
// if (json != null && json.items != null) {
// list.clear();
// list.addAll(json.items);
// }
// adapter.notifyDataSetChanged();
// } else {
// EvalEntityRef evalEntityRef = (EvalEntityRef) gson.fromJson(
// msg.obj.toString(), EvalEntityRef.class);
// Log.i("JSK", msg.obj.toString());
// if (evalEntityRef.data != null) {
// list.clear();
// list.addAll(evalEntityRef.data);
// adapter.notifyDataSetChanged();
// }
}
break;
case CONSULT_LIST: {
if (msg.arg1 != RET_OK) {
ConsultInfoRef consultInfoRef = gson.fromJson(msg.obj.toString(), ConsultInfoRef.class);
list.clear();
list.addAll(consultInfoRef.items);
adapter.notifyDataSetChanged();
}
break;
} default:
break;
}
return super.handleMessage(msg);
} /**
*
* @Title: consultList
* @Description: 咨询历史列表
*/
private void consultList() {
RequestMessage reqMsg = new RequestMessage("myConsultList");
reqMsg.put("userID", getUserID());
request(handler,reqMsg,CONSULT_LIST);
} }

服务端:

package com.gc.apps.jsk.online.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView; import com.gc.apps.jsk.common.message.InMessage;
import com.gc.apps.jsk.controller.JSKCommand;
import com.gc.apps.jsk.online.dbobj.Consult;
import com.gc.biz.basedata.dbobj.HospDept;
import com.gc.biz.doctor.dbobj.RESDoctor;
import com.gc.biz.order.dbobj.ConsultBooking;
import com.gc.common.util.StrUtil;
import com.gc.frame.spring.controller.AbstractCommand; /**
*
* MyConsultListCommand.java
*
* @Description: 我的咨询历史列表
*
* @version */
public class MyConsultListCommand extends AbstractCommand implements JSKCommand { // 日志
private final static Logger log = Logger
.getLogger(MyConsultListCommand.class); @Override
public ModelAndView run(HttpServletRequest request,
HttpServletResponse response) throws Exception { if (log.isDebugEnabled()) {
log.debug("用户咨询历史列表:MyConsultListCommand");
} InMessage inMessage = getInMessage(request);
String createTime = System.currentTimeMillis() / 1000 + "";
String msg = "操作失败!";
String ret = "-1"; try {
// 分页参数 当前页和每页记录数
String currentPage = StrUtil.notNull(inMessage.get("currentPage"));
if (currentPage == null || currentPage.length() == 0) {
currentPage = "1";
}
String pageCount = StrUtil.notNull(inMessage.get("pageCount"));
if (pageCount == null || pageCount.length() == 0) {
pageCount = "10";
} // 每页记录数
int npageCount = Integer.parseInt(pageCount);
// 偏移
int offset = npageCount * (Integer.parseInt(currentPage) - 1);
// 获取用户ID
String userID = StrUtil.notNull(inMessage.get("userID"));
ConsultBooking cb = new ConsultBooking();
cb.setField("UserID", userID);
List<ConsultBooking> listcb = new ArrayList<ConsultBooking>();
List<Map<String, Object>> listmap = new ArrayList<Map<String, Object>>();
listcb = cb.searchAndRetrieveList();
for (Iterator<ConsultBooking> it = listcb.iterator(); it.hasNext();) {
cb = it.next();
Map<String, Object> map = new HashMap<String, Object>(); // 与医生相关的信息
String doctorID = cb.getField("DoctorID");
RESDoctor resDoctor = new RESDoctor();
resDoctor.setField("DoctorID", doctorID);
if (resDoctor.find()) {
map.put("doctorName", resDoctor.getField("DoctorName"));
map.put("photo", resDoctor.getField("Photo"));
String deptCatID = resDoctor.getField("DeptCatID");
HospDept hd = new HospDept();
hd.setField("DeptCatID", deptCatID);
if (hd.find()) {
map.put("deptCatName", hd.getField("DeptName"));
}
}
map.put("orderDate", cb.getField("OrderDate"));
listmap.add(map);
} Map<String, Object> map = new HashMap<String, Object>();
map.put("ret", "1");
map.put("msg", "操作成功!");
map.put("createTime", createTime);
map.put("items", listmap);
sendJsonResult(response, JSONObject.fromObject(map).toString());
} catch (Exception e) {
e.printStackTrace();
log.error("用户咨询记录列表出错:" + e);
}
return null;
} @Override
public InMessage getInMessage(HttpServletRequest request) {
return (InMessage) request.getAttribute(JSKCommand.InMessage_KEY);
} @Override
public String getMessageKey() {
return getName();
}
}