# MyRefreshListView **Repository Path**: jiao-shichun/MyRefreshListView ## Basic Information - **Project Name**: MyRefreshListView - **Description**: 支持下拉刷新,上拉加载更多的listview。使用SwipRefreshView和RecylerView来实现。使用更简洁,更易用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyRefreshListView 支持下拉刷新,上拉加载更多的listview。使用SwipRefreshView和RecylerView来实现。使用更简洁,更易用 ##效果图 ![image](demo.gif) ##使用方式   1.view包中的三个类拷贝到自己项目中,并在项目的attrs中添加 将layout文件夹下的listview_foot拷贝到自己项目中,并将报错的地方拷贝过去即可。 2.新建自己的adapter public class DemoAdapter extends BaseRefreshAdapter { public DemoAdapter(Context context) { super(context); } @Override protected DemoAdapter.ViewHolder getViewHolder(ViewGroup parent) { View itemView = getView(parent, R.layout.adapter_demo); ViewHolder viewHolder = new ViewHolder(itemView); return viewHolder; } @Override protected void setItemData(ViewHolder holder, String bean) { holder.txt.setText(bean); } static class ViewHolder extends RecyclerView.ViewHolder { public TextView txt; public ViewHolder(View itemView) { super(itemView); txt = (TextView) itemView.findViewById(R.id.txt); } } } 3.在Aciticy中添加MyRefreshListView 4.在activity中使用 public class MainActivity extends AppCompatActivity implements MyRefreshListView.MyOnRefreshListener { private MyRefreshListView myList; private DemoAdapter demoAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myList = (MyRefreshListView) findViewById(R.id.mylist); demoAdapter = new DemoAdapter(this); demoAdapter.setOnItemClickListener(new BaseRefreshAdapter.OnItemClickListener() { @Override public void onItemClick(View view, String bean, int position) { Toast.makeText(MainActivity.this, bean, Toast.LENGTH_SHORT).show(); } }); myList.setAdapter(demoAdapter); myList.setMyOnRefreshListener(this); ArrayList strings = new ArrayList<>(); for (int i = 0; i < 10; i++) { strings.add("test:" + i); } demoAdapter.addItem(strings); } private Handler handler = new Handler(); @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { ArrayList strings = new ArrayList<>(); for (int i = 0; i < 10; i++) { strings.add("refresh:" + i); } //设置adapter的模式为刷新模式 demoAdapter.setMode(BaseRefreshAdapter.MODE_REFRESH); demoAdapter.addItem(strings); myList.setRefreshing(false); } }, 1000); } @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { ArrayList strings = new ArrayList<>(); for (int i = 0; i < 10; i++) { strings.add("loadmore:" + i); } //设置adapter的模式为加载更多模式 demoAdapter.setMode(BaseRefreshAdapter.MODE_LOADMORE); demoAdapter.addItem(strings); //如果数据大于50,表示没有更多数据,将adapter的模式设置为没有更多模式 if (demoAdapter.getAllData().size() > 50) { demoAdapter.setMode(BaseRefreshAdapter.MODE_NO_MORE); } } }, 1000); } }