编码样式:两个活动,代码大致相同但内容视图不同

时间:2016-01-04 19:24:01

标签: android coding-style

我有两个具有相同代码的活动。主要区别在于它们具有不同的内容视图(因此有一些不同的元素)。

建议什么?我应该把它留在两个活动中,还是应该将它作为一个活动,并且每当有关于视图的内容时使用if else查询解决它(例如setcontentview和一些其他视图相关的代码块)?

例如

if (isLandscape) { //landscape looks different than portrait
    setContentView(R.layout.activity_landscape);
} else {
    setContentView(R.layout.activity_normal);
}

这是推荐/良好的编码风格吗?

1 个答案:

答案 0 :(得分:3)

如果要为纵向和横向设置不同的视图,可以使用layout-land目录通过资源文件完成此操作,并在横向目录中添加具有相同名称的新活动布局。

因此,在layout和layout-land文件夹中都有一个activity.xml文件。

一般来说,为了回答您的问题,在您的活动中使用成员变量来区分您的两种情况很有效。然后,当您需要使用if / else逻辑基于此变量的状态执行某些操作时。

例如,在平板电脑上使用具有唯一视图容器的单独布局。您可以检查if(findViewById(R.id.tablet_container)) != null)然后根据此将isTabletView成员变量设置为true或false。任何时候你需要根据平板电脑或手机上运行的应用程序做一些事情,你可以参考这个变量。