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();
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值