Fragment的整个界面就一个listview,写了一个homeitem的实体,里面包含的banner,linearlayout以及recycleview都是作为homeitem里面的一个对象,用mvp架构实现网络数据的请求,在fragment中实现IView接口,来显示model层获取的数据,每个item显示不同的数据,然后再add到homeitemlist中,将homeitemList作为数据添加给listview,但是因为有多个Item需要加载的数据不同,导致在fragment实现IView接口的showdata()方法中不知道怎样给不同的homeitem里add数据,求助大神给说一下该怎么写,在此十分感谢。
解决方案 »
- 关于Eclipse开发Android添加类问题【菜鸟】
- 有把Android装在普通PC里的人吗,我虚拟机里网卡驱动就不知道怎么弄
- 怎么实现客户端tcp的发送传输,有代码,异步但接收的数据写不到EditText
- android分辨率问题
- apk反编译的问题,反编译出来的东西不知道怎么改。求救
- 在线等!求前辈指点迷津
- ActionBar的显示位置怎么设置?求解!!!
- 求助!关于Android接口数据加密的问题
- android客户端无法连接到openfire服务器
- bitmapfactory.decodefile异常
- 如何解决!!! FAILED BINDER TRANSACTION !!!
- 求助,Android Studio 2.2.2不能进入调试模式,debuggable已经设置为true,并且也设置了不混淆代码
当然我这么做的前提是使用了DataBinding做数据绑定,如果不借助这么写工作量会加大不少。而且我喜欢把简单的adapter放在界面的类中,所以在我看来adapter和界面是一起的,所以加入了ViewModel。你也可以把Adapter独立拿出来看(作为你的观点),它不属于View这个层级。所以你在adapter中做数据解析,也不违背MVP。(个人理解这些模式给了一个方向,保证程序的解耦啊健壮啊。其实严格按照一个规则来写程序,至少在阅读和理解代码时都会方便很多)
public class ListDO {
private String banner;
private String linearLayout;
private List<String> recycleview;
private String other1;
private String other2;
private String other3; public class RecycleDO {
private String data;
}
}
这就好比, 你要做3件事情,一种情况是3件一起做,一种情况是有顺序的做,那么后面那种情况肯定就会出现你不知道该先做哪件事情的时候.
针对这样的情况,只有从源头调整,也就是说从服务器获取的数据就应该包含整个的数据,并且是在一个json中,这样你拿到数据,再去处理相应的 item 就可以了,很完美,也很简单,可以跟服务器的同事沟通