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 ...
随机推荐
- sql server 创建文件组,文件
添加文件组: --ADD FILEGROUP 增加文件组 ALTER DATABASE TestHekaton ADD FILEGROUP [Report] ALTER DATABASE TestH ...
- 使用Javascript实现跳转页面和打开新窗口的方法
1.在原来的窗体中直接跳转用 window.location.href="你所要跳转的页面url"; 2.在新窗体中打开页面用: window.open('你所要跳转的页面url' ...
- 【Reporting Services 报表开发】— 数据表的使用
一.打开 SQL Server Business Intelligence Development Studio,新建项目—>商业智能项目—> 报表服务器项目,命名为CH3 二.在报表文件 ...
- CentOS 6.6 yum 方式安装sunversion 服务器
检查已安装版本 #检查是否安装了低版本的SVN[root@localhost /]# rpm -qa subversion #如果存储旧版本,卸载旧版本SVN[root@localhost modul ...
- NAT,网络地址转换详解
这个技术,是一个非常成熟的技术了,但是,为了将其弄得清楚点,体系点,也为了备忘,还是有必要在这里梳理一下! NAT:Network Address Translation. 这个主要是用在网络地址(I ...
- C++中的空类与空结构体大小
今天面试遇到了一个很有意思的问题,即空结构体在C++中所占的内存大小是多少?参见如下代码: #include <iostream> struct S0 { }; int main() { ...
- 在web.config里面添加配置信息
在web.config里面添加配置信息规范文字 代码如下 在<appSettings>中间添加 <add key="Director" value="处 ...
- Hibernate3回顾-1-部署
web备份版本,详见doc版本. 一.背景(部署简单回顾) 我们知道,一个Hibernate快速上手的简单流程是这样. 1引入对应jar包. 中间涉及log4的jar包和配置,略. 2 实体类 pac ...
- Entity Framework菜鸟初飞
Entity Framework菜鸟初飞 http://blog.csdn.net/zezhi821/article/details/7235134
- golang的ssh例子
package main import ( "github.com/dynport/gossh" "log" ) func MakeLogger(prefix ...