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



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

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

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

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

XListView的介绍和使用

在开发的过程中,wo'm

自定义控件之直接继承View创建全新视图(二)

自定义控件我们上一节探讨了一种最简单的自定义是直接继承View的子类,实现控件的不同UI视图展示及功能的拓展,在学习新知识前可以温习下之前所学知识-自定义控件之对现有控件拓展(一)。ok,在回顾了之前...
  • guiman
  • guiman
  • 2016年04月18日 14:28
  • 3650

Android自定义ViewGroup之流式布局的实现

前言:实现多元化的标签显示的页面,所有的子控件自动排版,类似各大网站的热搜效果!先贴上一张效果图供大家赏鉴! 先来说一下实现步骤: 一:定义一个容器:       定义一个什么容器呢?存...

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

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

XlistView上下加载的使用方法

import android.os.Build; import android.os.Handler; import android.support.annotation.RequiresApi; i...

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

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

XListView主方法内

public class MainActivity extends AppCompatActivity { private XListView x_list; //页数 pr...
  • shitou0
  • shitou0
  • 2017年11月12日 19:39
  • 54

WPF的Expander控件使用方法

  • 2017年10月29日 19:27
  • 55KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XlistView的使用方法
举报原因:
原因补充:

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