【问题标题】:Android: Best way to share code between activities? [closed]Android:在活动之间共享代码的最佳方式? [关闭]
【发布时间】:2013-09-17 20:18:19
【问题描述】:

我在几个包含工具栏、搜索文本框和按钮的活动中使用了包含。我不想将所有相同的代码复制到每个,因为这将成为编辑和更改等的噩梦。

完成这项工作的最佳方法是什么?

我最初的想法是创建一个新类,将按钮代码放入其中,并将活动传递给它,但我只是不确定如何执行此操作。

提前感谢您的帮助! 标记

【问题讨论】:

  • 不要传递活动。坏主意 :) 编写一个扩展 Activity 的类并将您的公共代码放在该类中。然后将此类用于需要此公共代码的所有活动。只需拨打super.nameOfMethod()

标签: android


【解决方案1】:

使用包含的layout 为其layout 创建一个BaseActivity,并具有该BaseActivity 中的功能。然后 extends BaseActivity 在你的另一个 Activities 中。

如果您需要更多/不同的功能,您可以覆盖任何Activities 中的功能。我这样做是为了在我的所有Activities 中都有一个完全自定义的“操作栏”。我的后退按钮、溢出按钮和另一个图像按钮功能都包含在BaseActivity 中。

【讨论】:

  • ListActivity、FragmentActivity、ActionBarActivity……呢?
  • @Piotr 我不确定ListActivity 会在这里做什么,但使用Fragments 绝对是一个可行的选择。但这就是我当时的做法,因为我无法轻松地将我的应用切换到使用 Fragments
  • 我的意思是,如果您使用多个 Activity 子类,则很难共享与 Activity 相关的代码。我想这种情况没有任何完美的解决方案
  • @Piotr 啊,我明白了。好吧,我目前所做的是有一个 BaseActivity 和一个 BaseListActivity 来扩展。但是如果你有这个选项,使用Fragment 是一个不错的选择
【解决方案2】:

codeMagic 的解决方案很优雅。 如果您想在多个项目中使用它,我建议您将此类(例如“BaseActivity”放入库中(将此项目标记为库)并导入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-16
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2011-11-19
    相关资源
    最近更新 更多