java-Android绑定策略,适配器应该工作还是执行视图?

java-Android绑定策略,适配器应该工作还是执行视图?,第1张

概述我不确定这是否取决于开发人员的意见,但是我正在创建一个android应用并具有一个显示自定义视图的Listview.我的布局基本上由一个View(作为xml资源文件和一个从作为根的视图派生的类),一个DomainModel对象(具有要绑定到该视图的数据)和一个从BaseAdapter派生的适配器组成,将域模型

我不确定这是否取决于开发人员的意见,但是我正在创建一个android应用并具有一个显示自定义视图的ListvIEw.我的布局基本上由一个VIEw(作为xml资源文件和一个从作为根的视图派生的类),一个Domain Model对象(具有要绑定到该视图的数据)和一个从BaseAdapter派生的适配器组成,将域模型中的数据绑定到getVIEwMethod中的视图,如下所示:

型号:SampleItem
自定义视图:SampleVIEw
适配器:(下面的代码)

   public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {  SampleVIEw sampleVIEw;  SampleItem item = (SampleItem)getItem(position);  if(convertVIEw == null) {   sampleVIEw = new SampleVIEw(_context);  }  else {   sampleVIEw = (SampleVIEw)convertVIEw;  }  sampleVIEw.setTitle(item.getTitle());  sampleVIEw.setContentText(item.getContent());  sampleVIEw.setItemRowNumer(item.getRowNumber());  ... //etc  return sampleVIEw;}

这就是我一直看到的完成方式,但是我不知道这是正确的方式.

我的想法来自于数据绑定的另一种方法,那就是实际的视图类没有关于其模型的概念,并且将控件转移到如何将数据绑定到适配器的类上,如果搬到其他地方.

我以为自定义视图类具有对绑定到该对象的对象的引用,并且在其构造函数中,它根据数据填充视图.因此,适配器本质上是仅执行以下 *** 作的shell类:

   public VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) {  SampleVIEw sampleVIEw;  SampleItem item = (SampleItem)getItem(position);  if(convertVIEw == null) {   sampleVIEw = new SampleVIEw(_context, item);  }  else {   sampleVIEw = (SampleVIEw)convertVIEw;  }  return sampleVIEw; }

并且视图的实际构造函数将知道其模型并填充自身,而不是由Adapter进行超出其职责范围的工作.

解决方法:

适配器应该这样做.有两个原因.

1)CursorAdapter#bindVIEw:它是在框架中定义的.这是惯用的,它将是其他androID程序员在阅读代码时所期望看到的.恕我直言,保持习惯用法可以改善代码维护和易读性.

2)AdapterVIEw类在androID中的工作方式是它们重用从适配器返回的VIEw.这样一来,在滚动/轻拂/等过程中不会创建许多新对象.动画和UI事件.为了使其正常工作,AdapterVIEw将该VIEw传递回适配器,并希望该视图可被重用.恕我直言,其目的和期望是使Adapter处理该VIEw的更新和​​重新绑定.如果您尝试使用方法并将绑定保留在VIEws构造函数中,则只有在构造函数中才会发生数据绑定.然后,您需要将该绑定移动到一个单独的函数中,这可能会使类接口混乱,并且继承会导致其他问题.

对我来说,我更喜欢VIEw只关心如何显示某些东西.这就是我真正要担心的所有责任.我认为这已经足够,因为某些视图可能变得非常复杂.我喜欢将其留给其他班级,以便担心告诉VIEw应该显示什么以及数据来自何处.有时这意味着非常简单的绑定,即,连续多次调用toString().但是,它会将显示的数据与基础数据解耦,从而使其中一项可以更改,并有可能重新使用另一项.

总结

以上是内存溢出为你收集整理的java-Android绑定策略,适配器应该工作还是执行视图?全部内容,希望文章能够帮你解决java-Android绑定策略,适配器应该工作还是执行视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1068910.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存