@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
view = inflater.inflate(R.layout.frg_listtwd, null);// 显示界面布局
myListView = (ListView) view.findViewById(R.id.lsttwds);// 列表布局
loadMoreView = inflater.inflate(R.layout.load_more, null);// 加载分页
btnLoadMore = (Button) loadMoreView.findViewById(R.id.loadMoreButton);// 分页按钮 bundle = this.getArguments(); // 获取条件
conditionStr = bundle.getString("conditionStr");
ctx = view.getContext();
try {
loadDataHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0x65533) {
myListView.setAdapter(myListViewAdapter);
loadMoreInit(conditionStr);
}
if (msg.what == 0x65534) {
Toast.makeText(getActivity(),
"没有该患者记录:",
Toast.LENGTH_LONG).show();
}
}
};
//根据体温单条件获取体温单数据
loadDataThread = new Thread(new Runnable() {
@Override
public void run() {
try {
TWDatasize = getTWDCount(conditionStr);// 加载初始数据
if (TWDatasize > 0) {
int count = (myListViewAdapter == null) ? 0
: myListViewAdapter.getCount();// 当前已加载的条数
String result = "";
RequireParams paraminfo = new RequireParams();
paraminfo.setMethodName("TWD_QueryRequest");
WebServiceInvoker invokerinfo = new WebServiceInvoker();
invokerinfo.setParams(paraminfo);
// 设置参数
SoapObject requestinfo = invokerinfo
.getRequestInstance();
requestinfo.addProperty("condition", conditionStr);
requestinfo.addProperty("recBegin",
currentIndex + 1);
if (count + pageSize <= TWDatasize) {
requestinfo.addProperty("recEnd", count
+ pageSize);
} else {
requestinfo.addProperty("recEnd", TWDatasize);
}
result = invokerinfo.invokeWS(requestinfo)
.getProperty(0).toString();
if (result.indexOf("error") >= 0) {
return;
} else {
myTWInfos = TWInfo.getTWInfo(result, "UTF-8");
myListViewAdapter = new ListTWAdapter(
TWDFragment.this.getActivity(),
myTWInfos,
R.layout.nurselist_items,
new String[] { "jlid", "rqsj",
"cshour", "JLR", "tw", "mbxl",
"xy1", "xy2" },
new int[] { R.id.cbox, R.id.itemsTitle,
R.id.itemsdaterecord,
R.id.itemsText,
R.id.nursedetail, R.id.itemsrow });
Message msg = loadDataHandler.obtainMessage();
msg.what = 0x65533;
msg.sendToTarget();
}
} else {
Message msg = loadDataHandler.obtainMessage();
msg.what = 0x65534;
msg.sendToTarget();
}
} catch (Exception e) {
Log.e(TAG, Log.getStackTraceString(e));
Toast.makeText(getActivity(),
"错误:" + Log.getStackTraceString(e),
Toast.LENGTH_LONG).show();
}
}
});
loadDataThread.start(); // 开启线程
} catch (Exception e) {
Log.e(TAG, Log.getStackTraceString(e));
}
return view;
}

  

@Override public void onClick(View v) { lsh = "576"; startdate = setstart_date.getText().toString(); enddate = setend_date.getText().toString(); btnLoginContext = v.getContext(); HandlerThread handlerThread = new HandlerThread("handlerThread"); handlerThread.start();// 启新线程 MyHandler myHandler = new MyHandler(handlerThread.getLooper());// 建消息队列的处理器(新线程) Message msg = myHandler.obtainMessage();// 绑定自定义的处理器 Bundle bundle = new Bundle(); bundle.putString("startdate", startdate); bundle.putString("enddate", enddate); bundle.putString("lsh", lsh); msg.setData(bundle); msg.sendToTarget(); } @Override public void handleMessage(Message msg) { try { super.handleMessage(msg); Bundle bundle = msg.getData(); if (bundle == null) return; String result = ""; StringBuilder str = new StringBuilder(); str.append("<condition><ksrqsj>" + bundle.get("startdate").toString()+ "</ksrqsj>"); str.append("<jsrqsj>" + bundle.get("enddate").toString()+ "</jsrqsj>"); str.append("<lsh>" + bundle.get("lsh").toString()+ "</lsh></condition>"); RequireParams params = new RequireParams(); params.setMethodName("GetNurseTableinfoPag"); WebServiceInvoker invoker = new WebServiceInvoker(); invoker.setParams(params); //设置参数 SoapObject request = invoker.getRequestInstance(); request.addProperty("condition", str.toString()); request.addProperty("recBegin", 0); request.addProperty("recEnd", 10); result = invoker.invokeWS(request).getProperty(0).toString(); if (result.indexOf("error") >= 0) { showMyDialog(btnLoginContext, result); return; } else { List<Map<String, Object>> myNurseInfos = null; myNurseInfos = NurseInfo.getNurseInfo(result, "UTF-8"); //查询成功 Intent intent = new Intent(); Bundle mybundle = new Bundle(); final SerializableMaplist myMap=new SerializableMaplist(); myMap.setMap(myNurseInfos); mybundle.putSerializable("listdata", myMap); intent.putExtras(mybundle); intent.setClass(getActivity(), NursingPageQuery.class); startActivity(intent); } } catch (Exception e) { Log.e(TAG, Log.getStackTraceString(e)); Toast.makeText(getActivity(),"错误:"+ Log.getStackTraceString(e),Toast.LENGTH_LONG).show(); }

  

android hander 线程用法的更多相关文章

  1. android操作线程各种方法解析

    (一)刚开始学习android的时候我是这么写的 new Thread( new Runnable() { public void run() { myView.invalidate(); } }). ...

  2. android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)

    继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) ...

  3. Android子线程更新UI的方法总结

    版权声明:本文为博主原创文章,转载请注明出处:https://i.cnblogs.com/EditPosts.aspx?postid=6121280 消息机制,对于Android开发者来说,应该是非常 ...

  4. 【Android学习】android:layout_weight的用法实例

    对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...

  5. Android UI线程和非UI线程

    Android UI线程和非UI线程 UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这 ...

  6. android 进程/线程管理(一)----消息机制的框架

    一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...

  7. Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

  8. Android之Adapter用法总结-(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  9. Android之Adapter用法总结(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

随机推荐

  1. HOG特征-理解篇

    网上去找关于HOG的资料,发现理解性的较少,并且较为冗长,为方便大家理解便自己写了篇,希望能对奋斗在特征提取第一线的同志们有所帮助: HOG即histogram of oriented gradien ...

  2. 在javascript中关于submit和button提交表单区别

    submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上. ...

  3. Mini2440 DM9000 驱动分析(一)

    Mini2440 DM9000 驱动分析(一) 硬件特性 Mini2440开发板上DM9000的电气连接和Mach-mini2440.c文件的关系: PW_RST 连接到复位按键,复位按键按下,低电平 ...

  4. Pull Requests

    Contribution Guide Issue Tracker You can find outstanding issues on the GitHub Issue Tracker. Pull R ...

  5. 一段JavaScript代码

    eval(function(p, a, c, k, e, d) { e = function(c) { return c.toString(36) }; if (!''.replace(/^/, St ...

  6. 自动化分析工具PSSDIAG

    微软有个内部工具--PSSDIAG,它能收集非常多的信息,仅需要简单的配置和操作步骤. 下载地址: http://diagmanager.codeplex.com 默认安装路径: C:\Program ...

  7. jquery中的index方法

    问题描述:灵活使用jquery中的index方法 方法签名:index([selector|element]) 用法概述:P1.index(P2)  //调用者P1可以为对象或集合 参数为空,返回P1 ...

  8. 关于Arrays类总结

    Arrays是java中的工具类,其中所有的方法都是static.类名就可以直接调用其中的方法. 本文部分引用自: http://www.importnew.com/8952.html Arrays. ...

  9. 有关于Algorithm的基础介绍

    Niklaus Wirth:Algorithm + Data Structures = Programs 这句话呢,觉得很正确,算法和程序是不同的概念,算法的思想呢有递推,枚举,分治,贪婪,试探法,模 ...

  10. 如何提高jQuery的性能

    缓存变量DOM遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $('#element').css('height',h-20); // ...