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();
}
}
android 列表开发 ListView的更多相关文章
- Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...
- Android列表视图ListView和ListActivity-android学习之旅(二十四)
ListView简介 ListView是android中常用的一种控件,创建ListView有两种方式: 1.在xml中使用ListView控件创建. 2.使用activity继承ListActivi ...
- Android——列表视图 ListView(一)Arrayadapter
一.ArrayAdapter 只显示文字 activitylistview_layout.xml <?xml version="1.0" encoding="utf ...
- Android 列表使用(ListView GridView Gallery图片计时滚动)
ListView 作用: 1.将数据填充到布局. 2.处理用户的选择点击等操作. 根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAd ...
- Android——列表视图 ListView(三)BaseAdapter
activity_activitybase.xml <?xml version="1.0" encoding="utf-8"?> <ListV ...
- Android——列表视图 ListView(二)SimpleAdapter
SimpleAdapter:可显示文字加图片 activity_activitysimple.xml <?xml version="1.0" encoding="u ...
- Android列表视图(List View)
Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是 ...
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- Android开发 ListView(垂直滚动列表项视图)的简单使用
效果图: 使用方法: 1.在布局文件中加入ListView控件: <?xml version="1.0" encoding="utf-8"?> &l ...
随机推荐
- 20150826运算符,if语句
运算符+ - * / % 加减乘除与注意:1.做除法运算时,如果两个操作数同为整数,则运算结果也是整数,不会出现小数.2.上面这些运算,如果两个操作数不同是一个类型,在运算的时候会自动进行类型转换. ...
- OpenJudge计算概论-错误探测
/*======================================================================== 错误探测 总时间限制: 1000ms 内存限制: ...
- jQuery tmpl用法总结
之前很是头疼循环数据的渲染,搞一大堆的命名,一点点的赋值,很是麻烦,今天学习了一下jQuery插件tmpl,下面抛出一些使用方法,供以后参考: 官方网址:http://web.archive.org/ ...
- js调用ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- smarty模板基础
将前台后台隔离,前台控制显示,后台控制逻辑/内容,与cms类似 原理: 用户访问text.php页面,后台调用类smarty.class.php显示静态模板;
- Windows环境变量
说明:系统文件盘为C盘,操作系统为Windows XP.登录用户名为weste.计算机名为icech 说明:不同的操作系统如Windows XP和Windows 2000相对应的一些路径是不同的,这里 ...
- SQL SERVER 2008安装时出现不能在控件上调用 Invoke 或 BeginInvoke错误 解决方法
或者 SQL SERVER 2008安装时要求重启,但重启后仍要求重启.都可以使用此方法. 注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet ...
- Oracle数据库中实现mysql数据库中auto-increment功能
在Mysql数据库中,想要实现一条数据的自增一功能(即插入此数据时填写null即可,系统自动+1),可直接在所在列使用语句auto-increment. id int primary key auto ...
- Puppet's Commands 3.7
Puppet's Commands Puppet’s command line interface consists of a single puppet command with many subc ...
- 文件Copy和文件夹Copy
文件Copy和文件夹Copy using System.Collections.Generic; using System.Linq; using System.Text; using System. ...