XlistView的使用方法

来源:互联网 发布:学javascript还是java 编辑:程序博客网 时间:2024/04/20 09:12
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);
    }
}



0 0
原创粉丝点击