【问题标题】:Android: Possible to have a seperate Java file for each Activity?Android:每个 Activity 可以有一个单独的 Java 文件吗?
【发布时间】:2012-04-03 02:32:42
【问题描述】:

您好,

我目前正在开发一个 Android 应用程序,但我希望能够在每个 Activity 的单独文件中处理按钮单击事件等。这可能吗?目前,我有一个非常大的文件来处理多个 Activity 窗口的所有事件。

非常感谢任何建议。

提前致谢,

【问题讨论】:

    标签: java android file android-activity


    【解决方案1】:

    对于事件处理,有 OnClickListener 接口,您可以创建自己的实现并仅在获得按钮的地方使用它,例如在 onCreate() 中:

    @Override
    public void onCreate(Bundle savedInstance) {
      ...
      Button btn = (Button) findViewById(R.id.ok_button);
      btn.setOnClickListener(new onClickListener() {
    
         @Override
         public void onClick() {
           // the code
         }
    
    }
    

    因此,您根本不必创建单独的文件。

    【讨论】:

    • 感谢您的留言。好的,所以我应该在一个文件中处理整个应用程序的所有事件?这是标准做法吗?
    • 发生在整个活动中的事件应该在该活动中处理。 Activity 应该是你的 UI 控制器。但不要忘记:如果您的 onClickListener 中有很多业务逻辑,那么您应该考虑将其移至另一个地点类,并从您的 onClickListener() 中调用此代码。
    • 嗨弗拉基米尔,现在说得通了。感谢您的回复。
    【解决方案2】:

    您尝试做的事情是不可能的(至少以干净的方式)。

    要处理点击,您必须实现一个接口 (View.OnCLickListener)。我假设在不同的视图中单击会产生不同类型的响应(即一个按钮可能会打开一个弹出窗口,另一个可能会启动一个活动)。

    是的,您可以检查被点击的视图的 id 并据此决定要做什么......但这看起来很丑!

    为了实现代码复用,我通常在一个内部类中实现所有东西。这样我就可以在每种情况下只选择一次要做什么。

    如果你做了一些非常通用的事情,你可以在一个单独的文件中做,这样你就可以在其他类中重用它。

    【讨论】:

    • 好的,这让我明白了。我会按照我的方式继续前进,尝试使用内部类。
    【解决方案3】:

    我认为你应该花一点时间熟悉面向对象的基础知识,然后再继续深入——你是在伤害自己,因为如果没有基本的理解,你最终可能会编写大量代码,如果你有基本的了解就不需要了。拿起一本 Java 入门书籍或在线学习一两个教程 - 你会很高兴的。

    我希望你不要听我的建议来攻击你——我只是告诉你,你的问题表明你不了解基础知识。

    现在回答您的问题...您想要创建一个实现所有共享事件处理逻辑的类(共享代码仅表示 所有 活动的代码将使用)。然后,您将通过使您的活动类成为 IS A EventHandlingClass 或 HAS A EventHandlingClass 来使用每个 Activity 类中的共享事件处理程序。现在由您来了解 IS AHAS A 的真正含义,当您这样做时,您将对面向对象语言有基本的了解。 p>

    祝你好运!

    罗德尼

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2017-08-16
      相关资源
      最近更新 更多