protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView = findViewById(R.id.scc);
listView = findViewById(R.id.lv);
initScc();
requestNetData();
}
private void requestNetData() {
if(NetStateUtil.isConn(this)){
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Toast.makeText(MainActivity.this,"111",Toast.LENGTH_SHORT).show();
Gson gson=new Gson();
Result result = gson.fromJson(jsonstr, Result.class);
if(operType==1){
newslist.clear();
}
//添加新的集合数据
newslist.addAll(result.getNewslist());
//设置适配器
setLvAdapter();
//关闭头尾视图
scrollView.onRefreshComplete();
}
});
myTask.execute(url);
}else{
NetStateUtil.showNoNetWorkDlg(this);
}
}
public void setLvAdapter(){
if(adapter==null){
adapter=new MyAdapter(this,newslist);
listView.setAdapter(adapter);
}else {
adapter.notifyDataSetChanged();
}
}
private void initScc() {
scrollView.setMode(PullToRefreshBase.Mode.BOTH);
scrollView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
//下拉刷新
operType=1;
pageIndex=1;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
//上拉加载
operType=2;
pageIndex++;
url="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="+pageIndex;
requestNetData();
}
});
}
布局
<com.handmark.pulltorefresh.library.PullToRefreshScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scc">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!---viewpager-->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_round"/>
<!---listview列表 高度无法正确计算,只能显示一条数据
解决办法:自定义的listview -->
<zhanghaijiao.bawei.com.pulltorefreshscrollview_demo.MyListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv"></zhanghaijiao.bawei.com.pulltorefreshscrollview_demo.MyListView>
</LinearLayout>
</com.handmark.pulltorefresh.library.PullToRefreshScrollView>
int newHeight=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);