Volly Demo之StringRequest

第一步:在MainActivity.xml中添加 interNet 权限

<uses-permission android:name="android.permission.INTERNET" />

第二步:在gradle中导入依赖包
compile ‘com.mcxiaoke.volley:library:1.0.19‘

第三步:创建Java和XML文件
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5  >
 6
 7     <Button
 8         android:id="@+id/start"
 9         android:layout_width="match_parent"
10         android:layout_height="50dp"
11         android:text="start"
12         />
13
14     <Button
15     android:id="@+id/end"
16     android:layout_width="match_parent"
17     android:layout_height="50dp"
18     android:text="end"
19     android:layout_below="@+id/start"
20     />
21     <Button
22         android:layout_width="match_parent"
23         android:layout_height="50dp"
24         android:id="@+id/clear"
25         android:layout_below="@+id/end"
26         android:text="clear"
27         />
28     <Button
29         android:layout_width="match_parent"
30         android:layout_height="50dp"
31         android:id="@+id/jump"
32         android:layout_below="@+id/clear"
33         android:text="jump"
34         />
35     <TextView
36         android:id="@+id/text_view"
37         android:layout_width="match_parent"
38         android:layout_height="match_parent"
39         android:layout_below="@+id/jump"
40         />
41 </RelativeLayout>
  1 package homepage.yhm.com.voellydemo;
  2
  3 import android.app.Activity;
  4 import android.app.DownloadManager;
  5 import android.content.Intent;
  6 import android.os.Handler;
  7 import android.os.Bundle;
  8 import android.os.Message;
  9 import android.util.Log;
 10 import android.view.View;
 11 import android.widget.Button;
 12 import android.widget.TextView;
 13
 14 import com.android.volley.Request;
 15 import com.android.volley.Response;
 16 import com.android.volley.VolleyError;
 17 import com.android.volley.toolbox.StringRequest;
 18 import com.android.volley.toolbox.Volley;
 19
 20
 21 public class MainActivity extends Activity {
 22
 23     private TextView text_view = null;
 24     private Button start = null;
 25     private Button end = null;
 26     private Button clear = null;
 27     private Button jump = null;
 28
 29     //使用handler时首先要创建一个handler
 30     Handler handler = new Handler(){
 31         @Override
 32         public void handleMessage(Message msg) {
 33             text_view.setText(msg.obj.toString());
 34 //            switch (msg.what){
 35 //                case 1:
 36 //                    text_view.setText(msg.obj.toString());
 37 //                    break;
 38 //                case 2:
 39 //                    text_view.setText(msg.obj.toString());
 40 //                    break;
 41 //            }
 42         }
 43     };
 44     //要用handler来处理多线程可以使用runnable接口,这里先定义该接口
 45     //线程中运行该接口的run函数
 46     Runnable update_thread = new Runnable() {
 47         public void run() {
 48             //线程每次执行时输出"UpdateThread..."文字,且自动换行
 49             //textview的append功能和Qt中的append类似,不会覆盖前面
 50             //的内容,只是Qt中的append默认是自动换行模式
 51 //            text_view.append("\nUpdateThread...");
 52             //延时1s后又将线程加入到线程队列中
 53 //            handler.postDelayed(update_thread, 1000);
 54             //
 55
 56 //            StringRequest stringRequest = new StringRequest(Request.Method.GET,"http://www.baidu.com", new Response.Listener<String> (){
 57 //                public void onResponse(String response){
 58 //                    Message message = handler.obtainMessage();
 59 //                    message.obj = response;
 60 //                    message.what = 1;
 61 //                    handler.sendMessage(message);
 62 //                    Log.d("baidu",response);
 63 //                };
 64 //            }, new Response.ErrorListener() {
 65 //                @Override
 66 //                public void onErrorResponse(VolleyError error) {
 67 //                    Message message = handler.obtainMessage();
 68 //                    message.obj = error.getMessage();
 69 //                    message.what = 2;
 70 //                    handler.sendMessage(message);
 71 //                }
 72 //            });
 73             Volley.newRequestQueue(MainActivity.this).add(new StringRequest(Request.Method.GET,"http://www.baidu.com", new Response.Listener<String> (){
 74                 public void onResponse(String response){
 75                     Message message = handler.obtainMessage();
 76                     message.obj = response;
 77                     message.what = 1;
 78                     handler.sendMessage(message);
 79                     Log.d("baidu",response);
 80                 };
 81             }, new Response.ErrorListener() {
 82                 @Override
 83                 public void onErrorResponse(VolleyError error) {
 84                     Message message = handler.obtainMessage();
 85                     message.obj = error.getMessage();
 86                     message.what = 2;
 87                     handler.sendMessage(message);
 88                 }
 89             }));
 90
 91
 92
 93         }
 94     };
 95
 96     @Override
 97     public void onCreate(Bundle savedInstanceState) {
 98         super.onCreate(savedInstanceState);
 99         setContentView(R.layout.activity_main);
100
101         text_view = (TextView) findViewById(R.id.text_view);
102         start = (Button) findViewById(R.id.start);
103         start.setOnClickListener(new StartClickListener());
104         end = (Button) findViewById(R.id.end);
105         end.setOnClickListener(new EndClickListener());
106
107         clear = (Button) findViewById(R.id.clear);
108         clear.setOnClickListener(new View.OnClickListener() {
109             @Override
110             public void onClick(View v) {
111                 text_view.setText(null);
112             }
113         });
114
115 //
116         jump = (Button) findViewById(R.id.jump);
117         jump.setOnClickListener(new View.OnClickListener() {
118             @Override
119             public void onClick(View v) {
120                 Intent i = new Intent();
121                 i.setClass(MainActivity.this, Login.class);
122                 startActivity(i);
123             }
124         });
125
126     }
127
128     private class StartClickListener implements View.OnClickListener {
129         public void onClick(View v) {
130             // TODO Auto-generated method stub
131             //将线程接口立刻送到线程队列中
132             handler.post(update_thread);
133         }
134     }
135
136     private class EndClickListener implements View.OnClickListener {
137         public void onClick(View v) {
138             // TODO Auto-generated method stub
139             //将接口从线程队列中移除
140             handler.removeCallbacks(update_thread);
141         }
142
143     }
144
145 }
时间: 2024-10-10 18:49:52

Volly Demo之StringRequest的相关文章

Volley学习(Volly分析)

记录下学习心得: Volley是android平台上的网络通讯库,能使网络通信更快,更简单,更便捷.Volly适合数据量不大但是通信频繁的场景. 先贴下Volley的架构图: Volley框架设计的主要几个类是Request(以及Volley提供的子类ImageRequest,StringRequest,JsonReques等),Volly,RequestQueue,CacheDispatcher,DiskBasedCache,NetworkDispatcher,BasicNetWork,Hur

微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

一.首先先确定H5支付权限已经申请!(需要微信h5支付demo的可以加 851 488 243 备注:h5支付) 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB 3.统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名"mweb_url"),商户通过mweb_url调起微信支付中间页 4.中间页进行H5权限的校验,安全性检查(此处常见错误请见下文) 5.如支付成

Maven+SpringMVC+Freemarker入门Demo

1 参考http://blog.csdn.net/haishu_zheng/article/details/51490299,用第二种方法创建一个名为mavenspringmvcfreemarker的Maven工程. 2 文件目录结构如下图所示 3 在pom.xml中添加springmvc和freemarker的依赖包,添加完之后的完整内容为 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0&q

Spring Security入门Demo

一.spring Security简介 SpringSecurity,这是一种基于Spring AOP和Servlet过滤器的安全框架.它提供全面的安全性解决方案,同时在Web请求级和方法调用级处理身份确认和授权.在Spring Framework基础上,Spring Security充分利用了依赖注入(DI,Dependency Injection)和面向切面技术. 二.建立工程 参考http://blog.csdn.net/haishu_zheng/article/details/51490

沫沫金Echarts移动端demo

鄙视百度!!! 官网给的Demo支持自动大小,确不给完整的源码XXX 自己动手,丰衣足食 http://echarts.baidu.com/demo.html#bar-tick-align 用最基本的柱状图官网代码 简单两步,实现移动端自适应大小 //1.下载Echarts <script src="dep/Echarts/echarts-all-3.js"></script> //2.chart容器宽度自适应 <!-- 为ECharts准备一个具备大小(

Flask---使用Bootstrap新建第一个demo

Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Bootstrap开源框架,Bootstrap是客户端框架,后台当然就是Flask了. 服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JS文件的html响应,并且在html.css和js代码中实例化需要的组件,这些操作的最理想的执行环境就是模板 关于模板的介绍及其实现原理:https://kb.

struts2和hibernate整合的小Demo

jar包下载地址 创建一个web项目. 导入jar包 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+

爬虫2:html页面+beautifulsoap模块+post方式+demo

爬取html页面,有时需要设置参数post方式请求,生成json,保存文件中. 1)引入模块 import requests from bs4 import BeautifulSoup url_ = 'http://www.c.....................' 2)设置参数 datas = { 'yyyy':'2014', 'mm':'-12-31', 'cwzb':"incomestatements", 'button2':"%CC%E1%BD%BB",