XlistView的使用方法

原创 2016年05月30日 16:55:44
import java.io.InputStream;
import java.util.ArrayList;

import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

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

import com.bawei.utils.StreamUtils;
import com.bwei.adapter.MyAdapter;
import com.bwei.bean.WeiChatInfo;
import com.bwei.bean.WeiChatInfo.Item;
import com.google.gson.Gson;

public class MainActivity extends Activity implements IXListViewListener{

    private XListView mListView;
    private String path="http://v.juhe.cn/weixin/query";
    private String key="41caaad5ecfb8aa1dcd187aeb163e6cf";
    private int pno=1;
    private BaseAdapter adapter;
    private ArrayList<Item> lists;
    
    Handler handler=new Handler(){

        public void handleMessage(android.os.Message msg) {
            if (msg.what==0) {
                WeiChatInfo weiChatInfo = (WeiChatInfo) msg.obj;
                
                lists = weiChatInfo.result.list;
                
                //给ListView设置适配器
                mListView.setAdapter(adapter = new MyAdapter(MainActivity.this, weiChatInfo));
            }
        }

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //找控件
        mListView = (XListView) findViewById(R.id.xListView);
        mListView.setPullLoadEnable(true);
        
        //得到数据
        getData(pno);
        
        mListView.setXListViewListener(this);
        
        //设置条目点击事件
        mListView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                Intent intent = new Intent(MainActivity.this,WebActivity.class);
                intent.putExtra("lists", lists.get(position-1).url);
                startActivity(intent);
            }
        });
    }
    /*
     * 定义获取数据的方法
     */
    private void getData(final int pno) {
        new Thread() {
            public void run() {
                try {
                    HttpClient client = new DefaultHttpClient();
                    HttpPost post = new HttpPost(path);
                    ArrayList<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();
                    list.add(new BasicNameValuePair("key", key));
                    list.add(new BasicNameValuePair("pno", pno+""));
                    HttpEntity entity = new UrlEncodedFormEntity(list,"utf-8");
                    post.setEntity(entity);
                    HttpResponse httpResponse = client.execute(post);
                    int statusCode = httpResponse.getStatusLine().getStatusCode();
                    if (statusCode==200) {
                        InputStream inputStream = httpResponse.getEntity().getContent();
                        String json = StreamUtils.getString(inputStream);
                        Gson gson = new Gson();
                        WeiChatInfo weiChatInfo = gson.fromJson(json, WeiChatInfo.class);
                        handler.obtainMessage(0, weiChatInfo).sendToTarget();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();
    }
    /**
     * 刷新
     */
    @Override
    public void onRefresh() {
        handler.postDelayed(new Runnable() {
            
            @Override
            public void run() {
                getData(pno);
                onLoad();
            }
        }, 3000);
    }
    /**
     * 加载
     */
    @Override
    public void onLoadMore() {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                pno++;
                getData(pno);
                onLoad();
            }
        }, 2000);
    }
    private void onLoad() {
        mListView.stopRefresh();
        mListView.stopLoadMore();
        mListView.setRefreshTime("刚刚");
    }

}





import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings.ZoomDensity;
import android.app.Activity;
import android.content.Intent;

public class WebActivity extends Activity {

    private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web);
        
        Intent intent = getIntent();
        String url = intent.getStringExtra("lists");
        
        webView = (WebView) findViewById(R.id.webView);
        
        webView.loadUrl(url);
        
        webView.setWebViewClient(new WebViewClient());
        //对WebView进行初始化设置
        initSetting();
    }
    /**
     * 初始化设置
     */
    private void initSetting() {
        WebSettings settings = webView.getSettings();
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setJavaScriptEnabled(true);
        settings.setCacheMode(WebSettings.LOAD_DEFAULT);
        settings.setBuiltInZoomControls(true);
        settings.setDefaultZoom(ZoomDensity.FAR);
    }
}



android listview系列之item的点击事件及item布局中的点击事件(四)

很多时候listview只显示简略信息,我们需要点击子项去跳转或在显示详细信息的位置,将相关的详细信息显示出来,listview提供了onItemClickListener()方法,在方法中我们可以执...
  • jing__jie
  • jing__jie
  • 2016年06月17日 15:53
  • 11048

XListView的介绍和使用

在开发的过程中,wo'm
  • forwardyzk
  • forwardyzk
  • 2014年04月27日 23:39
  • 11971

Android中Xlistview的使用

相信很多人都很习惯使用list view,因为它的有点有很多,但今天介绍一下XListView的使用,相信很多人已经使用过,只是菜鸟我才知道,废话不多说了, 一.github地址 https:/...
  • Afanbaby
  • Afanbaby
  • 2017年02月19日 15:28
  • 3408

XListView 配置文件 需导入项目 类名:XListView

 /**  * @file XListView.java  * @package me.maxwin.view  * @create Mar 18, 2012 6:28:41 PM  *...
  • zl406707
  • zl406707
  • 2016年08月14日 20:52
  • 219

网络数据请求XListView展示

xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schemas.android.com/apk/res/...
  • cn_Jack_Chen
  • cn_Jack_Chen
  • 2017年06月01日 20:41
  • 402

Xlistview使用方法

==最近向用xListView实现刷新效果,在网上没有找到相关的例子和方法说明。自己看了会儿demo在此留下笔记以供日后复习== 第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在la...
  • Cynicism_r
  • Cynicism_r
  • 2017年08月16日 19:15
  • 76

xListView分页加载数据

android开发中有的时候不可能一次性把所有的数据加载进去所以必须要分页加载数据,所以xlistview是很多开发中常用的一种方式进行分页加载数据。网络上很容易找到类库,但是分页加载的倒是比较少见,...
  • flower_danni
  • flower_danni
  • 2016年01月21日 10:09
  • 938

Maxwin-z/XListView-Android(下拉刷新上拉加载)源码解析(一)

本次解析的内容,是github上一个用于下拉刷新上拉加载的控件xlistview,这个功能相信大家在开发的过程中会经常用到。 控件的源码地址是https://github.com/Maxwin-z/X...
  • kangaroo835127729
  • kangaroo835127729
  • 2015年05月25日 15:28
  • 2495

安卓框架——XListView(上拉加载,下拉刷新)的使用方法

Xlistview项目主要是三部分:XlistView,XListViewHeader,XListViewFooter,分别是XListView主体、Header、Footer的实现。Header是通...
  • zwl5670
  • zwl5670
  • 2015年09月07日 21:39
  • 4731

Android Xlistview的源码浅度分析 监听ListView上下滑动 以及是否到顶和底部

比如我们很多项目中会用到listview
  • sk719887916
  • sk719887916
  • 2014年10月11日 10:27
  • 1483
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XlistView的使用方法
举报原因:
原因补充:

(最多只允许输入30个字)