Google官方网络框架-Volley的使用解析Json以及加载网络图片方法.doc_第1页
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法.doc_第2页
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法.doc_第3页
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法.doc_第4页
Google官方网络框架-Volley的使用解析Json以及加载网络图片方法.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Google官方网络框架-Volley的使用解析Json以及加载网络图片方法1.Volley的使用解析Json我们不罗嗦,直接开讲:我们的需求很简单,就是做一个归属地查询的小软件,使用Volley解析一段地址获取Json并且解析Json显示出来,很简单的需求吧,也很基础,不过却很直观! 先来看看效果图吧!步骤1.申请地址已经key2.把Volley的jar文件导入工程3.解析地址获取到json4.解析json填入1.申请的Key:22a6ba14995ce26dd0002216be51dabb 2.接口地址(聚合数据申请的):/mobile/get?phonekey=您申请的KEY 3.将Volley导入工程 4.开工了注意一定要先添加权限:activity_main.xml 这里没什么可说的,和预览界面的布局是一样的EditText:输入电话号码 id: android:id=+id/etButton:点击查询 android:id=+id/btnTextView:归属地,区号,运营商,用户类型 android:id=+id/tv1234MainActivity.java这里首先说一下步骤了:1.初始化这几个控件2.给Button添加点击事件/这里就是判断用户输入的方法,输入不为空的话就执行 Volley_Get();方法btn.setOnClickListener(new OnClickListener() Override public void onClick(View v) myPhone = et.getText().toString(); if (et = null) Toast.makeText(MainActivity.this, 号码不能为空, Toast.LENGTH_LONG).show(); else Volley_Get(); );3.Volley_Get方法是解析接口获取Json字符的,并且使用的是GET方法,还有POST方法我就不赘述了,抛砖引玉,不懂自行Google private void Volley_Get() /接口地址 myphone为我们输入的电话号码 Key:22a6ba14995ce26dd0002216be51dabb String url = /mobile/get?phone= + myPhone + &key=22a6ba14995ce26dd0002216be51dabb; RequestQueue queue = Volley.newRequestQueue(this); StringRequest request = new StringRequest(Method.GET, url, new Listener() / 成功 Override public void onResponse(String json) Volley_Json(json); Toast.makeText(MainActivity.this, 成功:+json, 1).show(); , new Response.ErrorListener() / 失败 Override public void onErrorResponse(VolleyError errorLog) Toast.makeText(MainActivity.this, 失败:+errorLog.toString(), Toast.LENGTH_LONG).show(); ); queue.add(request); 4.Volley_Json();当我们解析这个接口成功的话就会得到一个json的字符串了,具体的样子是这个样子的 resultcode: 200, reason: Return Successd!, result: province: 江西, city: 吉安, areacode: 0796, zip: 343000, company: 中国联通, card: 江西联通GSM卡 , error_code: 0我们现在新建一个方法Volley_Json()并且定义一个String的参数,如下:private void Volley_Json(String json) /result为200说明成功 try JSONObject jsonObject = new JSONObject(json); JSONObject object = jsonObject.getJSONObject(result); tv1.setText(归属地: + object.getString(province) + - + object.getString(city); tv2.setText(区号: + object.getString(areacode); tv3.setText(运营商: + object.getString(company); tv4.setText(用户类型: + object.getString(card); catch (JSONException e) / TODO Auto-generated catch block e.printStackTrace(); 这样子就可以解析出json中的字符串并且显示出来达到归属地的查询效果了,下面是MainActivity的完整代码以及Demo下载链接:package com.lgl.queryaddress;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.android.volley.Request.Method;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.Response.Listener;import com.android.volley.VolleyError;import com.android.volley.toolbox.StringRequest;import com.android.volley.toolbox.Volley;public class MainActivity extends Activity private TextView tv1, tv2, tv3, tv4; private EditText et; private Button btn; private String myPhone; Override protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stub super.onCreate(savedInstanceState); getActionBar().hide(); setContentView(R.layout.activity_main); initView(); btn.setOnClickListener(new OnClickListener() Override public void onClick(View v) myPhone = et.getText().toString(); if (et = null) Toast.makeText(MainActivity.this, 号码不能为空, Toast.LENGTH_LONG).show(); else Volley_Get(); ); private void initView() et = (EditText) findViewById(R.id.et); btn = (Button) findViewById(R.id.btn); tv1 = (TextView) findViewById(R.id.tv1); tv2 = (TextView) findViewById(R.id.tv2); tv3 = (TextView) findViewById(R.id.tv3); tv4 = (TextView) findViewById(R.id.tv4); private void Volley_Get() String url = /mobile/get?phone= + myPhone + &key=22a6ba14995ce26dd0002216be51dabb; RequestQueue queue = Volley.newRequestQueue(this); StringRequest request = new StringRequest(Method.GET, url, new Listener() / 成功 Override public void onResponse(String json) Volley_Json(json); Toast.makeText(MainActivity.this, 成功:+json, 1).show(); , new Response.ErrorListener() / 失败 Override public void onErrorResponse(VolleyError errorLog) Toast.makeText(MainActivity.this, 失败:+errorLog.toString(), Toast.LENGTH_LONG).show(); ); queue.add(request); private void Volley_Json(String json) /result为200说明成功 try JSONObject jsonObject = new JSONObject(json); JSONObject object = jsonObject.getJSONObject(result); tv1.setText(归属地: + object.getString(province) + - + object.getString(city); tv2.setText(区号: + object.getString(areacode); tv3.setText(运营商: + object.getString(company); tv4.setText(用户类型: + object.getString(card); catch (JSONException e) / TODO Auto-generated catch block e.printStackTrace(); 2.Volley加载网络图片 相对于请求json字符串,解析网络的图片倒是步骤少了,玩法也多起来,我们还是从简单的做起,还是以一个例子来,先看下效果图!就是一个Button和一个ImageView,点击Button加载图片信息步骤1.获取图片的链接2.添加权限3.加载网络图片layout_main.xml 一个Button android:id=+id/btn一个imageview android:id=+id/iv初始化这两个控件之后就直接解析了,代码不多,看MainActivity的完整代码package com.lglvolleyiv;import com.android.volley.RequestQueue;import com.android.volley.Response;import com.android.volley.VolleyError;import com.android.volley.toolbox.ImageRequest;import com.android.volley.toolbox.Volley;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity private Button btn; private ImageView iv; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); getActionBar().hide(); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.iv); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() Override public void onClick(View v) Volley_Iv(); ); / 加载图片 protected void Volley_Iv() /图片是百度的logo,直接浏览器右键获取图片地址即可 String url =/static/superman/img/logo/bd_logo1_31bdc765.png; /请求 RequestQueue queue = Volley.newReq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论