您的位置:首页 > 其它

三.PullToRefreshScrollView 整体下拉刷新下拉加载 主方法里面

2017-12-21 11:06 453 查看
private ImageView image_View;
private PullToRefreshScrollView pull_ref;
//页数
private int pageIndex = 1;
//操作的类型 1:下拉刷新  2:上拉加载
private int type = 1;
//    给Bean包设置一个集合
private List<MyBean.DataBean> list = new ArrayList<>();
//    网络地址
private String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=2";
private ListBaseadapte adapter;
private MyBean myBean;
private Banner ban;
private ListView my_list;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();

// 写成集合把图片放进去
List<String> li = new ArrayList<>();
//进行放入
li.add("http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg");
li.add("http://pic2.nipic.com/20090424/1468853_230119053_2.jpg");
li.add("http://img3.3lian.com/2013/s1/20/d/57.jpg");
li.add("http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg");
li.add("http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg");

ban.setImageLoader(new BannerImageLoader());
ban.setImages(li);
ban.start();

pull_ref.setMode(PullToRefreshBase.Mode.BOTH);
pull_ref.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
type = 1;
String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=" + pageIndex;
new asyncTask().execute(path);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
type = 2;
pageIndex++;
String path = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1457695555&loc_mode=5&lac=4527&cid=28883&iid=3835029558&device_id=12211880440&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=iToolsAVM&os_api=" + pageIndex;
new asyncTask().execute(path);
}
});
new asyncTask().execute(path);
}

class asyncTask extends AsyncTask<String, Void, String> {
//子线程
@Override
protected String doInBackground(String... params) {

try {
URL url = new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int responseCode = con
4000
nection.getResponseCode();
if (responseCode == 200) {
InputStream inputStream = connection.getInputStream();
String s = StreamToString(inputStream, "UTF-8");
return s;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//主线程
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.d("sss", "+++解析+++++" + s);
Gson gson = new Gson();
myBean = gson.fromJson(s, MyBean.class);

//代表刷新
if (type == 1) {
//如果是刷新的话
list.clear();//清除原有的数据
}
list.addAll(myBean.getData());//添加新的数据
setAdapter();
pull_ref.onRefreshComplete();

}
}
//新建一个适配器
public void setAdapter() {
if (adapter == null) {
Log.d("SSSSSSSSSSSSSS", "+++++++listtttttt++++++++" + list);
adapter = new ListBaseadapte(MainActivity.this, list);
my_list.setAdapter(adapter);
} else {
//否则刷新适配器
adapter.notifyDataSetChanged();
}
}
//解析数据
private String StreamToString(InputStream inputStream, String s) {
try {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, s);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String a = "";
StringBuilder stringBuilder = new StringBuilder();

while ((a = bufferedReader.readLine()) != null) {
stringBuilder.append(a);
}
bufferedReader.close();
return stringBuilder.toString();

} catch (Exception e) {
e.printStackTrace();
}
return "";
}
//获得控件
private void initView() {
//        image_View = (ImageView) findViewById(R.id.imageView);
my_list = (ListView) findViewById(R.id.My_list);
pull_ref = (PullToRefreshScrollView) findViewById(R.id.pull_ref);
ban = (Banner) findViewById(R.id.ban);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PullToRefresh
相关文章推荐