model 负责数据获取
class ListModel { fun getListData(page:Int,listener:ListLoadingListener){ Handler(Looper.getMainLooper()).postDelayed({ var arrayList = ArrayList<ListBean>() for (item in 1..10){ arrayList.add(ListBean("pageList=>${item}", "page*item",page.toString())) } listener.loadSuccess(arrayList) },1000) }}interface ListLoadingListener{ fun loadSuccess(listData:ArrayList<ListBean>) fun loadError()}
viewI 界面的动作处理
interface ListViewI { fun getCurrPage():Int fun setCurrPageData(listData:ArrayList<ListBean>) fun toRefreshAt() fun toUpLoadAt()}
presenter
class ListPresenter { var iView:ListViewI var listModel: ListModel constructor(iView:ListViewI){ this.iView = iView listModel = ListModel() } fun getListData(){ listModel.getListData(iView.getCurrPage(),object :ListLoadingListener{ override fun loadSuccess(listData: ArrayList<ListBean>) { LogUtil.e(">>>>${Gson().toJson(listData)}") iView.setCurrPageData(listData) } override fun loadError() { LogUtil.e("出错了") } }) }}
activity
class ListActivity : BaseActivity(), ListViewI { private var currNum: Int = 1; var pageList = ArrayList<ListBean>(); private lateinit var listAdapter:ListAdapter private lateinit var mListPresenter:ListPresenter private lateinit var moreModule: BaseLoadMoreModule val mThis by lazy { this } override fun setLayout(): Int { return R.layout.activity_list } override fun initView() { listAdapter = ListAdapter(R.layout.item_list,pageList) recyclerView.layoutManager = LinearLayoutManager(this) recyclerView.adapter = listAdapter refreshLayout.setOnRefreshListener { toRefreshAt() refreshLayout.isRefreshing = false } moreModule = listAdapter.loadMoreModule moreModule.setOnLoadMoreListener { toUpLoadAt() } listAdapter.setOnItemClickListener { adapter, view, position -> Toast.makeText(mThis, "go go go-> $position", Toast.LENGTH_SHORT).show() } mListPresenter = ListPresenter(this) mListPresenter.getListData() } override fun getCurrPage(): Int { return currNum } override fun setCurrPageData(listData:ArrayList<ListBean>) { if (currNum==1){ pageList.clear() pageList.addAll(listData) listAdapter.notifyDataSetChanged() }else{ listAdapter.addData(listData) } moreModule.loadMoreComplete() } override fun toRefreshAt() { currNum = 1 mListPresenter.getListData() } override fun toUpLoadAt() { currNum++ mListPresenter.getListData() }}
PDF转换