PullToRefresh上拉刷新下拉加载

主activity 主要显示所在城市和一个简单的listview和异步请求

package com.example.booktest;

import java.util.List;
import com.baidu.location.BDLocation;
public class MainActivity extends Activity {

private ListView lv;
private String url = "http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182";
private TextView tv;
public LocationClient mLocationClient = null;
public BDLocationListener myListener = new MyLocationListener();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    SDKInitializer.initialize(getApplicationContext());
    setContentView(R.layout.activity_main);
    lv = (ListView) findViewById(R.id.lv);//加载控件
    tv = (TextView) findViewById(R.id.tv);
    Dingwei();

    new mAsyncs().execute(url);

}

private void Dingwei() {

    mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类
    mLocationClient.registerLocationListener(myListener); // 注册监听函数
    LocationClientOption option = new LocationClientOption();
    option.setOpenGps(true); // 打开gps
    option.setIsNeedAddress(true);// 可选,设置是否需要地址信息,默认不需要 , 反编译获得具体位置,只有网络定位才可以
    option.setCoorType("bd09ll"); // 设置坐标类型
    option.setScanSpan(5000);
    mLocationClient.setLocOption(option);
    mLocationClient.start();
}

public class MyLocationListener implements BDLocationListener {

    public void onReceiveLocation(BDLocation location) {
        tv.setText(location.getCity());
    }
    }

class mAsyncs extends AsyncTask<String, Void, List<mResult>>{

    @Override
    protected List<mResult> doInBackground(String... params) {
        // TODO Auto-generated method stub
        String str = params[0];
        String data = new GetHttpUrlConnection().getHttpUrlData(str);
        Gson gson = new Gson();
        MyBooks fromJson = gson.fromJson(data, MyBooks.class);
        List<mResult> result = fromJson.getResult();

        return result;
    }

    @Override
    protected void onPostExecute(final List<mResult> result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);

        lv.setAdapter(new mAdapter(MainActivity.this,result));

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {
                // TODO Auto-generated method stub

                Intent in = new Intent(MainActivity.this,SenterActivity.class);
                in.putExtra("mid", result.get(position).getId());

                Log.i("aaa", "mid  =========="+result.get(position).getId());
                startActivity(in);

            }
        });

    }

}

}

activity上拉刷新和下拉加载

package com.example.booktest;
import java.util.ArrayList;
import java.util.List;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class SenterActivity extends Activity {

private PullToRefreshGridView mGridview;
private String catalog_id;
private String url;
private int post = 1;
private static int sizes = 1;
//private String uri = "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&pn="+sizes+"&rn=3&";
private String uri = null;
private sAdapter myAdapter;
private List<myData> list = new ArrayList<myData>();

Handler handler = new Handler(){

    public void handleMessage(android.os.Message msg) {

        List<myData> listBook = (List<myData>) msg.obj;
        if(post == 1){
            list.clear();
        }
        list.addAll(listBook);
        if(myAdapter == null){

            myAdapter = new sAdapter(SenterActivity.this,listBook);
            mGridview.setAdapter(myAdapter);
        }else {
            myAdapter.upData(list);
        }

    };
};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_senter);
    mGridview = (PullToRefreshGridView) findViewById(R.id.mGridview);

    ImageLoaderConfiguration conf=ImageLoaderConfiguration.
    createDefault(SenterActivity.this);
    ImageLoader.getInstance().init(conf);

    Intent intent = getIntent();
    catalog_id = intent.getStringExtra("mid");

    //Log.i("aaa", "url========="+catalog_id);


    getXmlData();

    mGridview.setOnRefreshListener(new OnRefreshListener2<GridView>() {

        @Override
        public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
            Toast.makeText(SenterActivity.this, "正在刷新......", Toast.LENGTH_SHORT).show();
            post = 1;
            sizes+=3;
            Log.i("aaa", "size======= "+sizes);
            getXmlData();
            mGridview.onRefreshComplete();

        }

        @Override
        public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
            Toast.makeText(SenterActivity.this, "正在加载......", Toast.LENGTH_SHORT).show();
            /*new GetDataTask().execute();*/
            post++;
            sizes+=5;
            Log.i("aaa", "size======= "+sizes);
            getXmlData();
            Log.i("aaa", "url========"+url);
            mGridview.onRefreshComplete();

        }

    });

}

    private void getXmlData() {
    // TODO Auto-generated method stub

    new Thread(new Runnable() {

        @Override
        public void run() {
            // TODO Auto-generated method stub

            url = "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&pn="+sizes+"&rn=5&"+"catalog_id="+catalog_id;

            GetHttpUrlConnection g = new GetHttpUrlConnection();
            String data = g.getHttpUrlData(url);
            Gson gson = new Gson();
            MyObjec fromJson = gson.fromJson(data, MyObjec.class);
            List<myData> list = fromJson.getResult().getData();
            //Log.i("aaa", "3333======"+list.toString());

            Message msg = Message.obtain();
            msg.obj = list;
            handler.sendMessage(msg);
        }
    }).start();
}

}

上拉刷新布局

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值