MVC、MVP與ListView、RecycleView

1.設計模式(mvc, mvp)

(1)mvc 將數(shù)據(jù)模型、界面視圖和業(yè)務邏輯控制分開的模式
  • Model :只準備純數(shù)據(jù),不關心它如何呈現(xiàn)。

問題:Model層與View層到底是如何連接的? 大多數(shù)情況Activity既充當View層又充當Controller層,所以用原生控件的時候,Model只會與Activity交互而不會與xml文件交互,但是如果用自定義控件的時候可以把Model層獲取的數(shù)據(jù)(通過controller層)傳給View層進行顯示(在View層操作從model層獲取的數(shù)據(jù))---這樣的好處在于當要修改UI時不需要去修改Model和Controller。

  • View:(xml文件或自定義控件)只管顯示數(shù)據(jù),不管數(shù)據(jù)從何而來
  • Controller:(Activity)負責控制處理事件

簡述MVC框架模式以及在你(ANDROID)項目中的應用

問題:Model的更新是通過觀察者模式告知View的?觀察者模式?

(2)mvp

主要是activity或者Fragment充當了View層,Presenter層相當于View層和Model層的一個橋梁,將Model層獲取的數(shù)據(jù)傳送給View層顯示(還是在Presenter層操作model層獲取的數(shù)據(jù)數(shù)據(jù))

2.RecycleView

先復習下ListView,使用ViewHolder是為了減少findViewById的次數(shù)

ListView擴展
setMultiChoiceModeListene實現(xiàn)ListView多選或單選模式

  • (1)創(chuàng)建Adapter繼承RecycleView.Adapter<ViewHolder>
  • (2)實現(xiàn)兩個重要的方法onBindViewHodler()以及onCreateViewHolder() (使用RecyclerView控件我們就可以把Item View視圖創(chuàng)建和數(shù)據(jù)綁定這兩步進行分來進行管理,用法就更加方便而且靈活)
  • (3)創(chuàng)建一個ViewHolder類,該類必須繼承自RecyclerView.ViewHolder類

RecycleView擴展:
RecycleView官方分割線

ListView與RecyclerView的區(qū)別

1.ListView是繼承BaseAdapter,復用convertView使用ViewHoleder減少findViewById()的次數(shù),而RecyclerView的adpter是繼承RecyclerView.adapte<RcyclerView.ViewHolder>
2.RecyclerView可以根據(jù)自己的需求去自定義分割線
3.RecyclerView自己實現(xiàn)了局部刷新。
4.RecyclerView提供了動畫效果。
5.RcyclerView支持嵌套滑動機制。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,432評論 25 708
  • Android四大組件: activity: activity的生命周期:activity是context的子類,...
    梧桐樹biu閱讀 658評論 0 2
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,568評論 2 45
  • 今天我們跟大家分享書中三個方面的內(nèi)容,分別是推遲滿足感、給予并不等同于愛,以及如何處理沖突。 1.推遲滿足感,處于...
    老商長談閱讀 286評論 0 2
  • 本文寫于2013年12月20日 后來呢,痛定思痛?浪子回頭?一改常態(tài)?發(fā)奮?勵志?自強?呵呵!這不是在演勵志劇,也...
    世為一閱讀 410評論 0 0