内容正文:
第15章文字控实战项目(二)
·MVP之View层开发·数据转换工具
·自定义适配器
·权限控制
学习目标
LEARNING OBJECTIVES
掌握MVP架构中View层的开发
掌握soup解析HTML页面
掌握使用Glide加载网络图片
掌握SwipeRefreshLayout:实现下拉刷新数据
初心至善匠心有人
15.1
MVP之View层开发
15.1.1view接口开发
151.2项目界面开发
15.1.3View实现类开发
15.1MVP之View层开发
15.1.1 Iview接口开发
。
IView接口的作用是将请求到的网络数据回调给View层显示,一般与Presenter层中的监听接口配合
使用,在讲解Presenter实现类时已经给出配合使用的代,IView接口的具体代码也很简单,只有
onSuccess0、onError(0方法,这里直接给出代码。
,"句集”模块的View接口如文件所示。
1 publio intertace IAlbunsVtew(
2
veid unsuceusa (ListsSontenceColleetSom suntuneecolleetional
void onkrror (Throwable e)
4
·"经典”模块的View如文件所示。
1 publie intertace IAllarticleview
void onguccesa rListsBentencesimple>aantencesimpleal
ve1 d phError (Throwah1e●):
初心至善匠心育人
15.1MVP之View层开发
15.1.1iew接口开发
·句子详情页的View如文件所示。
I public interface IJusiDetallView
2
veld onSuceesa (ScunelistDetall sconuLiatDotal
veid onErrorThrowable o):
·“原创”模块的View如文件所示。
1 pubiie Interface IOrignalvlex
2
v四d onSuce期wg(ig上Cg和ntenceDetai们)4 ntenceDet1w):
void onError!Throwable e)r
“灵感”模块的View如文件所示。
1 publie Intertace ITextIngVlew
void on5cE8a多(分wne社0twta1立8 conebi这theta11I日
vpd onError IThcowable e)
·View接口起着回调数据的作用,注意在编写此类代码时参数的正确性。
初心至善匠心育人
15.1VP之View层开发
15.1.2项目界面开发
·在图14.2与14.3中展示了本项目的全部界面,开发此类界面的常用方式是采用
Activity+Fragment-+ViewPager的组合形式。在第5章讲解Fragment时已经知道,Fragment是
Activity界面的一部分或一种行为,所以本项目的界面适合在一个Activity中创建多个Fragment来
实现,此外本项目界面中多个Fragmenti还可以滑动,所以应该将Fragment)放在ViewPager中。
·项目界面的底部导航栏包含4个部分,采用BottomNavigationBart比较合适,该组件是谷歌官方提
供的导航栏,使用方式也是通过添加依赖,在项目的build.gradle文件中添加如例所示代码。
compile 'co.ashokvara.android:bottom-navigation-bar:1.3.0'
初心至善匠心育人
15.1MVP之View层开发
15.1.2项目界面开发
·添加好BottomNavigationBar依赖后,开始本项目的界面开发。首先新建一个Activity,命名为
MainActivity,具体代码如书中文件15-6所示。
·继承BaseActivity并实现BottomNavigationBar的OnTabSelectedListener接▣。
·initBottomNavBar()方法用于初始化底部导航栏,其中第56~63行是在BottomNavigationBar中添
加4个ltem,将来会对应4个Fragment模块,第64~66行是将实例化好的Fragment;添加进
BottomNavigationBar中。
onTabSelected(int position),onTabUnselected(int position)SonTabReselected(int position)
方法是实现OnTabSelectedListener接口后重写的方法,其中在onTabS