【声明】转载请注明出处,此文出自指尖飞落的博客:http://blog.csdn.net/huntersnail

——尊重作者,知识无价,交流无限!

在Android中获取网络数据是非常重要的,也是非常耗时的一个操作。笔者知道一般是用两种方式来获取网络数据:

1、开启一条子线程来实现。

2、采取异步加载的方式。

好了,不废话了,直接上代码!


1、Activity

import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.widget.GridView;import android.widget.ListView;public class ShumaActivity extends Activity {private static final String TAG = "MainActivity";private ListView listView;private BookAdapter adapter;private GridView gv_shuma;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//listView=(ListView) findViewById(R.id.listView);gv_shuma=(GridView) findViewById(R.id.gv_shuma);new NetTask().execute();}class NetTask extends AsyncTask>{@Overrideprotected List doInBackground(Void... params) {List list =new ArrayList();//网络操作HttpClient client =new DefaultHttpClient();HttpGet get =new HttpGet("http://192.168.93.1:8080/myCloud/book/json");try {HttpResponse response=client.execute(get);if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){//OKHttpEntity entity=response.getEntity();String data=EntityUtils.toString(entity, "utf-8");Log.d(TAG, data);//数据解析//创建json数组,将数据放进去JSONArray array=new JSONArray(data);for(int i=0;i result) {super.onPostExecute(result);Log.d(TAG, result.toString());adapter=new BookAdapter(ShumaActivity.this, result);
gv_shuma.setAdapter(adapter);

 }}}   
   

2、自定义适配器BookAdapter

import java.util.List;import com.squareup.picasso.Picasso;import android.content.Context;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class BookAdapter  extends BaseAdapter{private List data;private LayoutInflater inflater;private Context context;public BookAdapter(Context context, List data){this.context=context;this.data=data;inflater=LayoutInflater.from(context);}@Overridepublic int getCount() {return data.size();}@Overridepublic Object getItem(int position) {return data.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder; if (convertView==null) {convertView=inflater.inflate(R.layout.book_item,parent, false);holder=new ViewHolder();holder.image=(ImageView) convertView.findViewById(R.id.iv_shuma_item);holder.isbn=(TextView) convertView.findViewById(R.id.isbn_shuma_item);holder.title=(TextView) convertView.findViewById(R.id.title_shuma_item);holder.author=(TextView) convertView.findViewById(R.id.author_shuma_item);convertView.setTag(holder);}else{holder=(ViewHolder) convertView.getTag();}Book b = data.get(position);holder.isbn.setText(b.getIsbn());holder.title.setText(b.getTitle());holder.author.setText(b.getAuthor());String urlImg="http://192.168.93.1:8080/myCloud"+b.getImage();Log.d("TAG",urlImg);//引用一个Picasso的库,加载图片Picasso.with(context).load(urlImg).into(holder.image);return convertView;}static class ViewHolder{ImageView image;TextView isbn;TextView title;TextView author;}}


3、Book的Bean文件

public class Book {private String isbn;private String title;private String author;private String image;public Book(){}public Book(String isbn, String title, String author, String image) {super();this.isbn = isbn;this.title = title;this.author = author;this.image = image;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getImage() {return image;}public void setImage(String image) {this.image = image;}@Overridepublic String toString() {return "Book [isbn=" + isbn + ", title=" + title + ", author=" + author+ ", image=" + image + "]";}}


好人做到底,以下是布局文件

4、/解析Json数据/res/layout/activity_main.xml

   

5、/解析Json数据/res/layout/book_item.xml

<?xml version="1.0" encoding="utf-8"?>    

我懂你,哈哈☞源码地址:http://download.csdn.net/detail/huntersnail/8809095

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆转载请注明出处☞指尖飞落的博客☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

更多相关文章

  1. android.util包下的几个集合类 SparseArray和ArrayMap等
  2. 第五章 以数据为中心—数据存取(2)
  3. Android(安卓)SharedPreferences详解
  4. Android之Content Providers
  5. android 关系型数据库 SQLiteDatabase的 增 删 改 查
  6. android创建sqlite数据库及在SD卡上创建数据库(一)
  7. Android(安卓)弹出菜单示例(Android(安卓)sample API22)
  8. Android——SimpleAdapter的简单使用
  9. Android(安卓)FastJson,json解析

随机推荐

  1. 今天给大家分享一下Android中的资源与国
  2. Android(安卓)最火的快速开发框架XUtils
  3. Android学习路线
  4. 做好准备,让你的短信应用迎接Android(安卓
  5. Android生成APK文件
  6. Android官方开发指南翻译(1)-什么是Andro
  7. Android(安卓)HAL 开发 (1)
  8. 在android的webview中实现websocket
  9. android demo之ApiDemos下的text
  10. android打包apk流程