【发布时间】:2012-04-03 02:32:42
【问题描述】:
您好,
我目前正在开发一个 Android 应用程序,但我希望能够在每个 Activity 的单独文件中处理按钮单击事件等。这可能吗?目前,我有一个非常大的文件来处理多个 Activity 窗口的所有事件。
非常感谢任何建议。
提前致谢,
【问题讨论】:
标签: java android file android-activity
您好,
我目前正在开发一个 Android 应用程序,但我希望能够在每个 Activity 的单独文件中处理按钮单击事件等。这可能吗?目前,我有一个非常大的文件来处理多个 Activity 窗口的所有事件。
非常感谢任何建议。
提前致谢,
【问题讨论】:
标签: java android file android-activity
对于事件处理,有 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
}
}
因此,您根本不必创建单独的文件。
【讨论】:
您尝试做的事情是不可能的(至少以干净的方式)。
要处理点击,您必须实现一个接口 (View.OnCLickListener)。我假设在不同的视图中单击会产生不同类型的响应(即一个按钮可能会打开一个弹出窗口,另一个可能会启动一个活动)。
是的,您可以检查被点击的视图的 id 并据此决定要做什么......但这看起来很丑!
为了实现代码复用,我通常在一个内部类中实现所有东西。这样我就可以在每种情况下只选择一次要做什么。
如果你做了一些非常通用的事情,你可以在一个单独的文件中做,这样你就可以在其他类中重用它。
【讨论】:
我认为你应该花一点时间熟悉面向对象的基础知识,然后再继续深入——你是在伤害自己,因为如果没有基本的理解,你最终可能会编写大量代码,如果你有基本的了解就不需要了。拿起一本 Java 入门书籍或在线学习一两个教程 - 你会很高兴的。
我希望你不要听我的建议来攻击你——我只是告诉你,你的问题表明你不了解基础知识。
现在回答您的问题...您想要创建一个实现所有共享事件处理逻辑的类(共享代码仅表示 所有 活动的代码将使用)。然后,您将通过使您的活动类成为 IS A EventHandlingClass 或 HAS A EventHandlingClass 来使用每个 Activity 类中的共享事件处理程序。现在由您来了解 IS A 或 HAS A 的真正含义,当您这样做时,您将对面向对象语言有基本的了解。 p>
祝你好运!
罗德尼
【讨论】: