问候,
我目前正在开发一个Android应用程序,但我希望能够在每个Activity的单独文件中处理按钮点击事件等。这可能吗?目前,我有一个非常大的文件来处理几个Activity窗口的所有事件。
任何建议都非常感谢。
提前致谢,
答案 0 :(得分: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
}
}
因此,您根本不必创建单独的文件。
答案 1 :(得分:1)
你想做的事情是不可能的(至少以干净的方式)。
要处理单击,您必须实现一个接口(View.OnCLickListener)。我假设在另一个视图中单击会产生不同类型的响应(即一个按钮可能会打开一个弹出窗口而另一个按钮可能会启动一个活动)。
是的,您可以检查点击的视图的ID,并根据它确定要做什么......但这看起来很难看!
为了完成代码重用,通常我会在内部类中实现所有内容。这样我就可以选择在每种情况下只做一次。
如果你做了一些非常通用的事情,你可以在一个单独的文件中完成它,这样你就可以在其他类中重复使用它。
答案 2 :(得分:0)
我认为你应该花一点时间熟悉面向对象的基础知识,然后再进一步 - 你自己也是一种伤害,因为没有基本的理解,你可能会写出大量的代码到底,如果你有基本的了解,就不需要了。拿起一本Java初学书或者在网上做一两个教程 - 你会很高兴的。
我希望你不要接受我的建议去挑选你 - 我只是告诉你,你的问题表明你不了解基本知识。
现在回答你的问题...你想创建一个实现所有共享事件处理逻辑的类(共享代码只意味着 所有 活动的代码将使用)。然后,您将通过使您的活动类成为 IS A EventHandlingClass或 HAS A EventHandlingClass来使用每个Activity类中的此共享事件处理程序。现在由您决定是A 或 HAS A 实际意味着什么,当您这样做时,您将对面向对象语言有基本的了解。
祝你好运!
罗德尼