package com.youth.xf.ui.demo; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glide.util.Util; import com.youth.xf.BaseActivity; import com.youth.xf.R; import com.youth.xf.bean.News; import com.youth.xframe.XFrame; import com.youth.xframe.adapter.XRecyclerViewAdapter; import com.youth.xframe.adapter.XViewHolder; import com.youth.xframe.adapter.decoration.DividerDecoration; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Random; public class XRecyclerViewAdapterActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener { private List<String> datas; private TestAdapter adapter; private RecyclerView recyclerView; private SwipeRefreshLayout mSwipeLayout; private Handler mHandler = new Handler(); @Override public int getLayoutId() { return R.layout.activity_xrecycler_view_adapter; } @Override public void initData(Bundle savedInstanceState) { datas = new ArrayList<>(); for (int i = 1; i <= 15; i++) { datas.add("第 " + i + " 个"); } } @Override public void initView() { mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); mSwipeLayout.setOnRefreshListener(this); mSwipeLayout.setColorSchemeResources(R.color.main_color); //添加分割线 recyclerView.addItemDecoration(new DividerDecoration(Color.parseColor("#C4C4C4"),1)); recyclerView.setLayoutManager(new LinearLayoutManager(this)); // recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); // recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); adapter = new TestAdapter(recyclerView, datas); //添加header,footer final View headerView = LayoutInflater.from(this).inflate(R.layout.header, recyclerView, false); final View footerView = LayoutInflater.from(this).inflate(R.layout.footer, recyclerView, false); adapter.addHeaderView(headerView); adapter.addFooterView(footerView); //点击事件 adapter.setOnItemClickListener(new XRecyclerViewAdapter.OnItemClickListener() { @Override public void onItemClick(View v, int position) { Toast.makeText(getApplication(), "position:" + position, Toast.LENGTH_SHORT).show(); } }); headerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(XRecyclerViewAdapterActivity.this,XMultiTypeAdapterActivity.class) .putExtra("title","多布局使用+StickyHeader")); } }); footerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplication(), "移除footer", Toast.LENGTH_SHORT).show(); adapter.removeFooterView(footerView); } }); adapter.isLoadMore(true);//开启加载更多功能,默认关闭 adapter.setOnLoadMoreListener(new XRecyclerViewAdapter.OnLoadMoreListener() { @Override public void onRetry() {//加载失败,重新加载回调方法 load(); } @Override public void onLoadMore() {//加载更多回调方法 load(); } }); recyclerView.setAdapter(adapter); } public void load() { mHandler.postDelayed(new Runnable() { @Override public void run() { //模拟几种错误情况和正确情况 int random = new Random().nextInt(10); if (random <3 ) { adapter.showLoadError();//显示加载错误 } else if (random >=3 && random < 6) { adapter.showLoadComplete();//没有更多数据了 } else{ adapter.addAll(getDatas("新增加"));//加载更多 } // adapter.addAll(getDatas("新增加"));//加载更多 } }, 2000); } public List<String> getDatas(String str) { List<String> datas = new ArrayList<>(); int random = new Random().nextInt(10); for (int i = 1; i <= random; i++) { datas.add(str+" 第 " + i + " 个"); } Log.e("--",str+" "+datas.size()); return datas; } @Override public void onRefresh() { mHandler.postDelayed(new Runnable() { @Override public void run() { adapter.setDataLists(getDatas("刷新")); mSwipeLayout.setRefreshing(false); } }, 2000); } //单一类型adapter class TestAdapter extends XRecyclerViewAdapter<String> { public TestAdapter(RecyclerView recyclerView, List<String> datas) { super(recyclerView, datas, R.layout.dome_item); } @Override public void bindData(XViewHolder holder, String data, int position) { //方法一: holder.setText(R.id.text, data); //方法二: //TextView textView = holder.getView(R.id.text); //textView.setText(data); } } }