@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. [MODx] 7. MIGX DB

    MODx provides a really unfriendly way to work with xPDO class. What I means is you need to define XM ...

  2. android137 360 双击三击事件

    package com.itheima52.doubleclick; import android.app.Activity; import android.os.Bundle; import and ...

  3. [Effective C++ --006]若不能使用编译器自动生成的函数,就该明确拒绝

    ■本文内容■□第一节 <引言> 在条款五的讲解中,我们已经知道编译器是聪明的家伙,它会帮助你生成类的构造函数.析构函数.一个copy构造函数和一个赋值运算符.有时真的要感谢编译器所做的这一 ...

  4. 23、从头学Android之ContentProvider .

    http://blog.csdn.net/jiahui524/article/details/7016430 应用场景: 在Android官方指出的Android的数据存储方式总共有五种,分别是:Sh ...

  5. DataGridView实现倒计时功能(源码)

    需求:最近做一个即时通项目,需要结合OA项目:其中有一个待办事项需要倒计时,准备在DataGridView里展示,如图: 第一步:绑定数据 ; intLoop <= ; intLoop++) { ...

  6. [COCOS2DX]COCOS命令新建项目+编译安卓项目并成功运行

    全程搭建过程参考网址: http://blog.csdn.net/lengxue789/article/details/38116475 http://blog.csdn.net/cbbbc/arti ...

  7. ping与telnet的区别

    ping 查看某个IP地址是否有效.还可以得出解析IP..评估网络质量.telnet 查看可以PING通IP的机子上的某个端口是否可以进行访问(telnet IP port) ,如果连接失败,可能是防 ...

  8. 考试宝典-真题园安卓AppV2.1.0新版发布啦,全新界面,全新体验,全面适配Android 5.0&6.0系统!

    真题园移动客户端是真题园网 http://www.zhentiyuan.com 旗下的一款学习考试应用App. 1.全新适配Android5.0.6.0系统,重新优化架构网络通信模块. 2.全新清爽U ...

  9. 使用RecyclerView实现瀑布流的效果

    主函数: public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; privat ...

  10. gluster 安装配置基本指南

    基于网络上的多篇文章,做了一些调整. gluster安装 ###  Installing Gluster wget -P /etc/yum.repos.d http://download.gluste ...