MainActivity类
import android.support.v4.view.accessibility.AccessibilityManagerCompat;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements CallBackListener<ResponseBean> {
private RecyclerView recycler;
private SwipeRefreshLayout swipe;
List<ResponseBean.美女Bean> listData = new ArrayList<>();
private StaggeredGridLayoutManager staggeredGridLayoutManager;
private MyRecyclerViewAdapter adapter;
private LinearLayoutManager linearLayoutManager;
private int page;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
loadMore();
}
private void loadMore() {
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
listData.clear();
page++;
initData(page);
adapter.notifyDataSetChanged();
swipe.setRefreshing(false);
}
});
recycler.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (RecyclerView.SCROLL_STATE_IDLE == newState) {
int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
if (lastVisibleItemPosition == listData.size() - 1) {
page++;
initData(page);
adapter.notifyDataSetChanged();
}
}
}
});
}
private void initData(String page) {
NetUtils netUtils = new NetUtils(this);
netUtils.getNetWorkData(page);
}
private void initView() {
recycler = (RecyclerView) findViewById(R.id.recycelr);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
staggeredGridLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
linearLayoutManager = new LinearLayoutManager(this);
recycler.setLayoutManager(linearLayoutManager);
}
@Override
public void callBackData(final ResponseBean responseBean) {
if (responseBean != null) {
listData.addAll(responseBean.person);
Log.e("TAG","下拉"+listData.size()+"");
runOnUiThread(new Runnable() {
@Override
public void run() {
if (adapter == null) {
adapter = new MyRecyclerViewAdapter(MainActivity.this, listData);
recycler.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
});
}
}
}
接口
public interface CallBackListener<T> {
void callBackData(T t);
}
public class Constance {
public static final String URL=?
}
适配器
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import java.util.List;
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyViewHolder> {
private Context context;
private List<ResponseBean.美女Bean> list;
public MyRecyclerViewAdapter(Context context, List<ResponseBean.美女Bean> listData) {
this.context = context;
this.list=listData;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = parent.inflate(context, R.layout.recycler_item, null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
//Log.e("TAG",list.size()+"总数据");
Glide.with(context).load(list.get(position).imgsrc).into(holder.recycler_item_image);
}
@Override
public int getItemCount() {
return list != null ? list.size() : 0;
}
static class MyViewHolder extends RecyclerView.ViewHolder {
ImageView recycler_item_image;
public MyViewHolder(View itemView) {
super(itemView);
recycler_item_image = itemView.findViewById(R.id.recycler_item_image);
}
}
}
public class NetUtils {
private static CallBackListener callBackListener;
public NetUtils(CallBackListener callBackListener) {
this.callBackListener = callBackListener;
}
public void getNetWorkData(String url) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(Constance.URL+url)
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBackListener.callBackData(null);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful() && response != null) {
String data = response.body().string();
Logger.d("TAG",data);
ResponseBean responseBean = ResponseBean.objectFromData(data);
callBackListener.callBackData(responseBean);
}
}
});
}
}
Okhttp和网络数据
最新推荐文章于 2024-11-20 12:55:06 发布
2286

被折叠的 条评论
为什么被折叠?



