zoukankan      html  css  js  c++  java
  • pull-to-Refresh

    package com.zcp.week1;

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;

    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.GridView;
    import android.widget.Toast;

    import com.google.gson.Gson;
    import com.handmark.pulltorefresh.library.PullToRefreshBase;
    import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
    import com.handmark.pulltorefresh.library.PullToRefreshGridView;
    import com.zcp.bean.Conn;
    import com.zcp.bean.Data;

    public class MainActivity extends Activity {


    private String url="http://m.yunifang.com/yunifang/mobile/goods/getall?random=9949&encole=6c2154232994e7d36ad461e3caa68ca7";
    private List<Data> list=new ArrayList<Data>();
    private List<Data> list1=new ArrayList<Data>();
    private PullToRefreshGridView view_grid;
    private GridView grid;
    private MyApapter adapter;
    private List<Data> d;
    private int j=0;
    private boolean flag=true;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    view_grid=(PullToRefreshGridView)findViewById(R.id.pull_refresh_grid);
    grid=view_grid.getRefreshableView();
    new Ask().execute(url);
    view_grid.setOnRefreshListener(new OnRefreshListener2<GridView>() {


    @Override
    public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
    flag=true;
    new Ask().execute(url);

    }

    @Override
    public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
    flag=false;
    new Ask().execute(url);
    }

    });
    adapter=new MyApapter(list,MainActivity.this);
    grid.setAdapter(adapter);
    grid.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {


    }
    });
    }

    private class Ask extends AsyncTask<String,Void,String>{


    @Override
    protected String doInBackground(String... params) {
    String s = http(params[0]);
    return s;
    }

    @Override
    protected void onPostExecute(String result) {
    super.onPostExecute(result);
    Gson gson=new Gson();
    Conn c=gson.fromJson(result,Conn.class);
    d = c.getData();
    if(flag){
    listTest(d);
    }else{
    listTest1();
    }

    adapter.notifyDataSetChanged();
    view_grid.onRefreshComplete();
    }

    }

    private String http(String s){
    try {
    HttpClient client=new DefaultHttpClient();
    HttpGet get=new HttpGet(s);
    HttpResponse res = client.execute(get);
    int i=res.getStatusLine().getStatusCode();
    if(i==200){
    HttpEntity en = res.getEntity();
    String ss=EntityUtils.toString(en,"utf-8");
    return ss;
    }
    } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;

    };

    private void listTest(List<Data> d){
    list.clear();
    for (int i = 0; i <d.size(); i++) {
    if(d.get(i)!=null){
    if(i<10){
    list.add(d.get(i));
    }else{
    list1.add(d.get(i));
    }
    }
    }

    }
    private void listTest1(){

    for (int i =j; i <j+5; i++) {
    if(i==list1.size()){
    Toast.makeText(MainActivity.this,"已经是最后一条了",1).show();
    return;
    }
    if(list1.get(i)!=null){
    list.add(list1.get(i));
    }
    }

    j+=5;

    }
    }

    //xml布局

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <com.handmark.pulltorefresh.library.PullToRefreshGridView
    xmlns:ptr="http://schemas.android.com/apk/res-auto"
    android:id="@+id/pull_refresh_grid"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:numColumns="1"
    android:verticalSpacing="1dp"
    android:horizontalSpacing="1dp"
    android:columnWidth="100dp"
    android:stretchMode="columnWidth"
    android:gravity="fill"
    ptr:ptrMode="both"
    ptr:ptrDrawable="@drawable/a" />


    </RelativeLayout>

  • 相关阅读:
    javascript Date format(js日期格式化)
    给上传文件的input控件“美容”
    判断json数据是否为空
    C#实现SQL数据库备份与恢复
    jquery读取html5的data-属性
    PowerDesigner使用教程
    PowerDesigner使用教程|使用方法
    [转][南京米联ZYNQ深入浅出]第二季更新完毕课程共计16节课
    DefWindowProc是一个会产生消息的函数
    BeginPaint 和 GetDC 的一个区别
  • 原文地址:https://www.cnblogs.com/hnpy/p/5455221.html
Copyright © 2011-2022 走看看