您的位置:首页 > 其它

PullToRefresh上拉刷新下拉加载

2016-05-04 10:26 330 查看
主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&g
4000
t;) 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();
}


}

上拉刷新布局
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: