Android Best Pratice重用代码和布局

时间:2017-03-31 18:38:02

标签: android json

我一直在阅读有关xml上的include标记,用于智能手机和平板电脑布局的片段,但我对解决问题的方法感到困惑。

我的应用有4个屏幕。

1 - 您登录并从json下载信息

2,3,4 - 从登录,活动2加载(带有自定义适配器的列表),您可以在其中单击2个图像中的一个以跳转到第3和第4个活动。

我现在需要再次创建活动1,2和3,同时解析不同的JSON,其中1和2具有相同的布局,而3则具有不同的布局。

我需要他们工作的代码是(或可以)相同的(使用AsyncTask下载任务,按钮单击侦听器等)我已经拥有这些活动。

我认为基本上复制基本相同的getView方法并不是一个很好的方法,例如,粘贴一个新类,对吧?例如,按钮不适用于第二个屏幕范围。

那么,我应该采用什么方法来复制和粘贴代码并手动更改内容?

抱歉新手问题。

如果需要,我可以提供代码。

PS 1:我已经使用包含在xml和复制代码上进行了测试,但这看起来并不专业

PS 2:片段是否仅适用于平板电脑等不同的屏幕,或者我可以用它制作一些东西?

1 个答案:

答案 0 :(得分:1)

这是几个问题,所以这里有几个答案,包括一些未提问题:

  • 尽最大可能努力从您的活动,片段等中删除尽可能多的代码。如果它与Android生命周期没有任何关系,或者实际上在屏幕上放置了某些内容(例如解析JSON),把它放在一个简单的旧java"类。此外,您可以在“活动”之间共享功能。

  • 恕我直言,你不应该出于任何原因使用AsyncTask。它们与活动或片段一起使用,但不尊重片段或活动生命周期,因此通常是导致崩溃的原因,难以诊断。使用与生命周期同步的内容,如Loader。或者转到RxJava路线,可以在活动/片段生命周期中的适当位置取消订阅者。

  • 碎片可以很好地重复使用代码,但它们与活动的生命周期略有不同,因此它们很难处理,因此请谨慎使用它们并小心。如果您只是为了重复使用一些UI(但不是行为),那么布局"包括"可能更好。对于行为,自定义View类可以替代Fragment。

  • 不要使用HTTPUrlConnection等原语自行进行HTTP / REST访问。有很多角落案件会让你陷入困境。使用为此目的而构建的几个非常好的开源库之一。我强烈推荐Retrofit。