一、添加Library依赖
implementation project(':library')
二、xml文件
<com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:scrollbars="none" android:layout_height="match_parent" android:id="@+id/lv"/>
三、Activity文件
public class MainActivity extends AppCompatActivity {
//http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1
@BindView(R.id.gridview)
PullToRefreshListView lv;
private ArrayList<Bean.DataBean> arrays;
private MyListViewAdapter adapter;
private String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=";
private int index=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
lv.setMode(PullToRefreshBase.Mode.BOTH);
initView();
}
//http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=1
@BindView(R.id.gridview)
PullToRefreshListView lv;
private ArrayList<Bean.DataBean> arrays;
private MyListViewAdapter adapter;
private String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=";
private int index=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
lv.setMode(PullToRefreshBase.Mode.BOTH);
initView();
}
private void initView() {
arrays=new ArrayList<>();
adapter=new MyListViewAdapter(arrays,this);
gridview.setAdapter(adapter);
loadData(index);
lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
arrays.clear();
loadData(1);
gridview.postDelayed(new Runnable() {
@Override
public void run() {
lv.onRefreshComplete();
}
},1000);
}
arrays=new ArrayList<>();
adapter=new MyListViewAdapter(arrays,this);
gridview.setAdapter(adapter);
loadData(index);
lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
arrays.clear();
loadData(1);
gridview.postDelayed(new Runnable() {
@Override
public void run() {
lv.onRefreshComplete();
}
},1000);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
index++;
loadData(index);
gridview.postDelayed(new Runnable() {
@Override
public void run() {
lv.onRefreshComplete();
}
},1000);
}
});
public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
index++;
loadData(index);
gridview.postDelayed(new Runnable() {
@Override
public void run() {
lv.onRefreshComplete();
}
},1000);
}
});
}
private void loadData(int index) {
new Retrofit.Builder()
.baseUrl("http://www.qubaobei.com/")
.addConverterFactory(GsonConverterFactory.create())
.build().create(NewService.class).GetData(path+index)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
arrays.addAll(response.body().getData());
adapter.notifyDataSetChanged();
}
new Retrofit.Builder()
.baseUrl("http://www.qubaobei.com/")
.addConverterFactory(GsonConverterFactory.create())
.build().create(NewService.class).GetData(path+index)
.enqueue(new Callback<Bean>() {
@Override
public void onResponse(Call<Bean> call, Response<Bean> response) {
arrays.addAll(response.body().getData());
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<Bean> call, Throwable t) {
public void onFailure(Call<Bean> call, Throwable t) {
}
});
}
}
});
}
}
四、Adapter和之前ListView适配器一样,继承BaseAdapter,就不再详细写了