`
zhengaihua
  • 浏览: 21891 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

xlistview+httpUtils

阅读更多
package com.example.listview_;

import java.util.ArrayList;
import java.util.List;

import com.example.day07_listview_.XListView.IXListViewListener;
import com.example.day07_listview_.bean.Bean;
import com.example.day07_listview_.bean.Data;
import com.example.day07_listview_.bean.News;
import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.listener.PauseOnScrollListener;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity implements IXListViewListener {
	String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_society&count=20&min_behot_time=1476067842&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1476067224&loc_mode=5&lac=4527&cid=28883&iid=5567581950&device_id=23365548172&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SCH-I919U&os_api=19&os_version=4.4.2&uuid=352284041184817&openudid=1111111111110000";
	// 鍖哄垎璇锋眰涓嬫潵鐨勬暟鎹槸鍋氫粈涔堢敤鐨�
	// 涓嬫媺鍒锋柊
	public static final int REFRESH = 1;
	// 涓婃媺鍔犺浇鏇村
	public static final int LOADMORE = 2;
	// 鍒濆鍖�
	public static final int INIT = 3;

	private MyBaseAdapter myBaseAdapter;

	List<Data> list = new ArrayList<Data>();
	Handler handler = new Handler() {

		public void handleMessage(android.os.Message msg) {
			// 鍙栧嚭鏁版嵁
			Bean bean = (Bean) msg.obj;
			int tag = msg.arg1;

			switch (tag) {
			// 绗竴娆″姞杞芥暟鎹�
			case INIT:
				// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
				list.addAll(bean.data);
				myBaseAdapter = new MyBaseAdapter(MainActivity.this, list);
				xListView.setAdapter(myBaseAdapter);
				break;
			// 鍒锋柊鏁版嵁
			case REFRESH:
				// 娓呯┖闆嗗悎
				list.clear();
				// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
				list.addAll(bean.data);
				myBaseAdapter.notifyDataSetChanged();
				stopXListView();
				break;
			// 鍔犺浇鏇村
			case LOADMORE:
				// 鎶婃湁鏁版嵁鐨勯泦鍚堟坊鍔犲埌鍙︿竴涓泦鍚堥噷
				list.addAll(bean.data);
				myBaseAdapter.notifyDataSetChanged();
				stopXListView();
				break;

			}

		};

	};
	private XListView xListView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		xListView = (XListView) findViewById(R.id.xListView);
		// 婵�娲讳笂鎷夊姞杞芥洿澶�
		xListView.setPullLoadEnable(true);
		// xListView涓婃媺涓嬫媺鐩戝惉
		xListView.setXListViewListener(this);
		// 绗竴娆¤幏鍙栨暟鎹�
		getData(INIT);

		xListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				
				String url = list.get(position-1).share_url;

				startActivity(new Intent(MainActivity.this,
						SecondActivity.class).putExtra("url", url));

			}
		});
//listView婊戝姩鐘舵�佹椂,imageloader涓嶅姞杞藉浘鐗�
		xListView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));
		
	}

	@Override
	// 涓嬫媺鍒锋柊
	public void onRefresh() {

		getData(REFRESH);

	}

	@Override
	// 涓婃媺鍔犺浇
	public void onLoadMore() {
		getData(LOADMORE);
	}

	public void stopXListView() {

		xListView.stopLoadMore();
		xListView.stopRefresh();

		xListView.setRefreshTime("2016-10-10 11:11:11");

	}

	// 鑱旂綉鑾峰彇鏁版嵁
	public void getData(final int tag) {
		HttpUtils httpUtils = new HttpUtils();
		httpUtils.configCurrentHttpCacheExpiry(0);
		httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {

			@Override
			public void onFailure(HttpException arg0, String arg1) {

			}

			@Override
			public void onSuccess(ResponseInfo<String> arg0) {
				// 鍙栧嚭json
				String s = arg0.result;
				System.out.println(s);
				// 瑙f瀽json
				Gson gson = new Gson();
				Bean bean = gson.fromJson(s, Bean.class);

				// 鍙戦�乯son
				Message msg = Message.obtain();
				msg.obj = bean;
				msg.arg1 = tag;
				handler.sendMessage(msg);
			}
		});
	}

}

 

分享到:
评论

相关推荐

    HttpUtils

    `HttpUtils`类提供了一个无参数的构造函数,用于创建一个空的`HttpUtils`对象。这个构造函数没有执行任何操作(NOOP),意味着它仅仅初始化了一个`HttpUtils`实例,而不进行任何额外的设置或配置。 #### 局部字符串...

    HttpUtils 发送http请求工具类(实例讲解)

    在 HttpUtils 工具类中,有一些关键的代码需要特别注意: 1. `init()` 方法:该方法用于初始化连接池,设置最大连接数和每路由最大连接数。 2. `getHttpClient()` 方法:该方法用于获取 HttpClient 对象,用于发送 ...

    xUtils之HttpUtils的get和Post请求

    本篇文章将详细讲解xUtils中的HttpUtils模块,主要涉及GET和POST两种常见的网络请求方式。 首先,我们来看GET请求。GET请求是HTTP协议中最基础的一种请求方式,通常用于获取服务器上的资源。在xUtils中,HttpUtils...

    httpUtils封装上传图片api

    httpUtils封装上传图片api

    HTTPUtils_HTTP上传下载_

    另外,为了处理上传和下载的进度显示,`HTTPUtils`可能会提供回调接口,允许调用者监听并更新进度。这些回调可能在读写流的过程中触发,传递已上传/下载的字节数。 安全性也是关键,`HTTPUtils`可能会处理HTTPS连接...

    HttpUtils.rar

    本文将深入探讨HttpUtils类及其在Java中的应用。 HttpUtils类通常是开发者自定义的一个工具集,它封装了常见的HTTP请求方法,如GET、POST等,使得开发者在处理网络请求时能更加便捷。下面,我们将详细解析HttpUtils...

    httpUtils等工具类

    例如,`httpUtils.get(url)`可以发送一个GET请求到指定的URL,而`httpUtils.post(url, params)`则用于发送POST请求,并携带参数。此类通常还会包含处理响应数据、设置请求头、处理异步请求等功能,以满足不同场景的...

    HttpUtils Java get post 工具类

    "HttpUtils Java get post 工具类" 提供了便捷的方法来发送GET和POST请求,简化了网络请求的操作。以下是对这两个主要HTTP方法的详细解释以及如何在Java中实现它们。 **1. GET方法** GET是HTTP中最常见的请求方法,...

    XUtils-HttpUtils

    HttpUtils httpUtils = new HttpUtils(); ``` 3. **发送GET请求**:要发送GET请求,调用`send`方法并传入请求URL和回调。 ```java httpUtils.send(HttpMethod.GET, "http://example.com", new HttpCallback() { @...

    httputils网络请求工具

    HttpUtils网络请求工具类,可以获取网络上的数据转化给JSON数据然后处理成自己的想要的数据 http://blog.csdn.net/qq_30552993/article/details/51774509

    HttpUtils工具类

    HttpUtils工具类

    HttpUtils-ok.zip

    《HttpUtils-ok.zip:模拟浏览器进行网络爬虫的利器》 在互联网大数据时代,网络爬虫作为一种高效的数据获取工具,已经广泛应用于各种领域,如市场分析、舆情监测、学术研究等。而`HttpUtils-ok.zip`这个压缩包,...

    HttpUtils.zip

    `HttpUtils.zip`文件提供了一种便捷的方式来使用这两种工具,旨在简化开发过程,提升开发效率。下面我们将详细探讨HttpClient、OkHttp以及HttpUtils的相关知识点。 1. **HttpClient**:HttpClient是Apache基金会...

    HttpUtils.7z

    综上所述,`HttpUtils`这个示例涵盖了网络请求的基本要素,包括认证、请求方法、重试策略,以及对OkHttp的模仿。通过学习和理解这个示例,开发者可以更好地掌握Android中的网络编程,提高应用的网络性能和用户体验。...

    HTTPUtils工具类

    最全httpClient工具类 .

    HttpUtils 请求工具类

    自己写的基于Java自带URL请求 处理get,post 不明白的,里面直接运行可以跑,

    打造一个通用的网络请求引擎HttpUtils

    - 我们可以为HttpUtils提供静态方法,如`get(String url, Callback callback)`和`post(String url, RequestBody body, Callback callback)`,以处理GET和POST请求。Callback接口用于接收服务器的响应。 3. **构建...

    HttpUtils.java

    使用java代码的方式发出http请求并且转成json对象转成pojo对象,发送http请求,并且尝试重试请求等功能。 支持restful形式的请求方式。

    HttpUtils_java_

    下面将详细探讨`HttpUtils`类中的主要知识点。 1. **HTTP协议基础**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它是基于TCP/IP通信协议来...

    httpUtils调用接口工具类

    http请求第三方接口工具类,sendGet请求get请求,sendPost请求post接口。map参数类型

Global site tag (gtag.js) - Google Analytics