1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. android:orientation="vertical" >
  5.  
  6. <ProgressBar
  7. android:id="@+id/pb_handler1_loading"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:layout_gravity="center_horizontal"
  11. android:visibility="invisible"/>
  12.  
  13. <Button
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content"
  16. android:onClick="getSubmit1"
  17. android:text="GET Submit" />
  18.  
  19. <Button
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content"
  22. android:onClick="getSubmit2"
  23. android:text="GET Submit2" />
  24.  
  25. <EditText
  26. android:id="@+id/et_handler1_result"
  27. android:layout_width="match_parent"
  28. android:layout_height="wrap_content"
  29. android:hint="显示结果" >
  30. </EditText>
  31. </LinearLayout>
  1. package com.example.volleylearn;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.InputStream;
  5. import java.net.HttpURLConnection;
  6. import java.net.URL;
  7.  
  8. import android.app.Activity;
  9. import android.os.Bundle;
  10. import android.os.Handler;
  11. import android.os.Message;
  12. import android.view.View;
  13. import android.widget.EditText;
  14. import android.widget.ProgressBar;
  15.  
  16. /**
  17. * 测试Handler的基本使用
  18. *
  19. 1. 创建Handler成员变量对象, 并重写其handleMessage()
  20. 2. 在分/主线程创建Message对象
  21. 3. 使用handler对象发送Message
  22. 4. 在handleMessage()中处理消息
  23. */
  24. public class HandlerTestActivity extends Activity {
  25.  
  26. private ProgressBar pb_handler1_loading;
  27. private EditText et_handler1_result;
  28.  
  29. //1. 创建Handler成员变量对象, 并重写其handleMessage()
  30. private Handler handler = new Handler(){
  31. public void handleMessage(Message msg) {//在主线程执行
  32. if(msg.what == 1) {
  33. //4. 在handleMessage()中处理消息
  34. String result = (String) msg.obj;
  35. et_handler1_result.setText(result);
  36. pb_handler1_loading.setVisibility(View.INVISIBLE);
  37. }
  38. }
  39. };
  40.  
  41. @Override
  42. protected void onCreate(Bundle savedInstanceState) {
  43. super.onCreate(savedInstanceState);
  44. setContentView(R.layout.activity_handler_test);
  45.  
  46. pb_handler1_loading = (ProgressBar) findViewById(R.id.pb_handler1_loading);
  47. et_handler1_result = (EditText) findViewById(R.id.et_handler1_result);
  48. }
  49.  
  50. /*
  51. 1. 主线程, 显示提示视图(ProgressDialog/ProgressBar)
  52. 2. 分线程, 联网请求, 并得到响应数据
  53. 3. 主线程, 显示数据/隐藏提示视图
  54. */
  55. public void getSubmit1(View v) {
  56. //1. 主线程, 显示提示视图(ProgressDialog/ProgressBar)
  57. pb_handler1_loading.setVisibility(View.VISIBLE);
  58. //2. 分线程, 联网请求, 并得到响应数据
  59. new Thread(){
  60. public void run() {
  61. String path = "http://192.168.10.165:8080/Web_Server/index.jsp?name=Tom&age=12";
  62. try {
  63. final String result = requestToString(path);
  64.  
  65. //3. 主线程, 显示数据
  66. runOnUiThread(new Runnable() {
  67. @Override
  68. public void run() {
  69. et_handler1_result.setText(result);
  70. pb_handler1_loading.setVisibility(View.INVISIBLE);
  71. }
  72. });
  73. } catch (Exception e) {
  74. e.printStackTrace();
  75. }
  76. }
  77. }.start();
  78. }
  79.  
  80. public void getSubmit2(View v) {
  81. //1). 主线程, 显示提示视图(ProgressDialog/ProgressBar)
  82. pb_handler1_loading.setVisibility(View.VISIBLE);
  83. //2). 分线程, 联网请求, 并得到响应数据
  84. new Thread(){
  85. public void run() {
  86. String path = "http://192.168.10.165:8080/Web_Server/index.jsp?name=Tom&age=12";
  87. try {
  88. String result = requestToString(path);
  89.  
  90. //3). 主线程, 显示数据
  91. //2. 在分/主线程创建Message对象
  92. Message message = Message.obtain();
  93. message.what = 1;//标识
  94. message.obj = result;
  95. //3. 使用handler对象发送Message
  96. handler.sendMessage(message);
  97. } catch (Exception e) {
  98. e.printStackTrace();
  99. }
  100. }
  101. }.start();
  102. }
  103.  
  104. /**
  105. * 请求服务器端, 得到返回的结果字符串
  106. * @param path : http://192.168.30.165:8080/Web_server/index.jsp?username=tom&age=12
  107. * @return
  108. * @throws Exception
  109. */
  110. public String requestToString(String path) throws Exception {
  111. URL url = new URL(path);
  112. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  113. connection.setConnectTimeout(5000);
  114. connection.setReadTimeout(5000);
  115. connection.connect();
  116. InputStream is = connection.getInputStream();
  117. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  118. byte[] buffer = new byte[1024];
  119. int len = -1;
  120. while ((len = is.read(buffer)) != -1) {
  121. baos.write(buffer, 0, len);
  122. }
  123. baos.close();
  124. is.close();
  125. String result = baos.toString();
  126. connection.disconnect();
  127.  
  128. return result;
  129. }
  130.  
  131. }

progressbar请求数据 加载demo1的更多相关文章

  1. 如何实现Echart不刷新页面,多语言切换下的地图数据重新加载,api请求数据加载,soketed数据实时加载

    可视化项目中经常用到ecahrt,各种异步加载,连接socket,多语言切换等问题,现在汇总一下: Ecahrt初始化,全局统一init,可以初始化为0,等待后续数据操作 1.如果是api重新请求,数 ...

  2. 巧用ajax请求服务器加载数据列表时提示loading

    我们利用weui.js中的weui.loading为效果,ajax的beforeSend与complete方法,做一个加载数据时会有几秒的 loading... 要在页面需要加载的JS文件: < ...

  3. BaseHttpListActivity,几行代码搞定Android Http列表请求、加载和缓存

    Android开发中,向服务器请求一个列表并显示是非常常见的需求,但实现起来比较麻烦,代码繁杂. 随着应用的更新迭代,这种需求越来越多,我渐渐发现了实现这种需求的代码的共同点. 于是我将Activit ...

  4. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

  5. Android Volley和Gson实现网络数据加载

    Android Volley和Gson实现网络数据加载 先看接口 1 升级接口 http://s.meibeike.com/mcloud/ota/cloudService POST请求 参数列表如下 ...

  6. Echarts通过Ajax实现动态数据加载

    Echarts(3.x版)官网实例的数据都是静态的,实际使用中往往会要求从服务器端取数据进行动态显示,官网教程里给出的异步数据加载很粗略,下面就以官网最简单的实例为例子,详细演示如下过程:1.客户端通 ...

  7. [转载]再次谈谈easyui datagrid 的数据加载

    这篇文章只谈jQuery easyui datagrid 的数据加载,因为这也是大家谈论最多的内容.其实easyui datagrid加载数据只有两种方式:一种是ajax加载目标url返回的json数 ...

  8. echarts异步数据加载(在下拉框选择事件中异步更新数据)

    接触echarts 大半年了,从不会到熟练也做过不少的图表,隔了一段时间没使用这玩意,好多东西真心容易忘了.在接触echarts这期间也没有总结什么东西,今天我就来总结一下如何在echart中异步加载 ...

  9. Android之MVP模式实现登录和网络数据加载

    MVP简介 相信大家对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的 ...

随机推荐

  1. 为Jenkins增加ssl(https)的访问支持(Windows/Linux)

    前言: 增加ssl(https)的访问可以为部署在公网下的jenkins提供更安全的问题,最明显的好处应该是登录和jenkins-ci.jar的调用. 比如jenkins-ci.jar的调用,一般在w ...

  2. 实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎

    实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎 Programmatic Framework™ 传漾程序化购买框架

  3. Android图片缓存之Bitmap详解(一)

    前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. Bitmap: Bitmap是Android ...

  4. PhantomJS 基础及示例 (转)

    概述 PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support f ...

  5. Dance In Heap(一):浅析堆的申请释放及相应保护机制

    0×00 前面的话 在内存中,堆是一个很有趣的地方,因为它可以由用户去直接的进行分配与销毁,所以也产生了一些很有趣.奇思妙想的漏洞,像unlink漏洞.House系列漏洞等等.但是在学习的过程中,我们 ...

  6. python numpy实现多次循环读取文件 等间隔过滤数据

    numpy的np.fromfile会出现如下的问题,只能一次性读取文件的内容,不能追加读取,连续两次的np.fromfile读到的东西一样 如果数据文件太大(几个G或以上)不能一次性全读进去,需要追加 ...

  7. [Bash] Understand and Use Functions in Bash

    n this lesson, we'll go over how bash functions work. Bash functions work like mini bash scripts--yo ...

  8. 利用Python自动发送邮件

    # -*- coding:utf-8 -*-from email.mime.text import MIMETextfrom email.header import Headerimport smtp ...

  9. 关于 AlphaGo 论文的阅读笔记

    这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 <Mastering the game of Go with deep neural networks and tre ...

  10. One usage of recurison: the tower of Hanoi

    Statements: This blog was written by me, but most of content  is quoted from book[Data Structure wit ...