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);
    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

fragment中使用xutils

public class Myfragment extends Fragment implements XListView.IXListViewListener {     private XL...

网络数据请求XListView展示

xml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://schemas.android.com/apk/res/...

ViewPager+Fragment(延时加载)+XListView(下拉刷新)+ViewPager(自动循环)嵌套

最外层使用ViewPager,将定义的Fragment放入ViewPager中adapter为 MyFrageStatePagerAdapter: package cn.bj.dxh.carclues...

pull解析请求网络的数据(带分页加载,刷新) xlistview HttpUtils

在请求下的数据中,其中不免有xml数据,反正我是不经常碰到,但是也小小的研究了一下,这里我们就简单的解析一下xml数据~~(这里涉及到刷新和加载和展示数据,可能代码会长一点,请大家耐心一点) ---...

ListView详解之二----XListView

本次分析的是github上一个用于下拉刷新上拉加载的控件XListView,这个开源的ListView相信大家在开发的过程中会经常用到。XListView控件的源码地址是https://github....

(一个常用的案例)Fragment xlistview pull 网络请求 刷新分页加载 ImageLoader

我们最常用的就是网络请求啦,各种各样的柔和在一起,下面我们来看看这个案例的实现: 1.———————主函数的布局 activity_main.xml—————————— 一定要记得加权限、配...

Android第三方框架之xListView的使用方法

 Android第三方框架之xListView的使用方法 时间:2015-01-30 14:03来源:www.chengxuyuans.com 点击: 351 ==最近向用xListV...

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

Xlistview项目主要是三部分:XlistView,XListViewHeader,XListViewFooter,分别是XListView主体、Header、Footer的实现。Header是通...

Android第三方框架之xListView的使用方法

==最近向用xListView实现刷新效果,在网上没有找到相关的例子和方法说明。自己看了会儿demo在此留下笔记以供日后复习== 第一步:到官网下载第三方包,拷贝到自己的项目中。要注意的地方是在lay...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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