【问题标题】:Why are Android's OnClickListeners encapsulated by the View interface?为什么Android OnClick Listeners 是由 View 接口封装的?
【发布时间】:2012-02-01 07:32:57
【问题描述】:

我是 android 新手(和一般编程),我想知道为什么 OnClickListener 界面在 View 下。例如,我可能会设置一个按钮,当您单击该按钮时,我会显示一条 toast 消息。为什么 onclicklistener 需要知道关于视图的任何信息?

所以我明白什么是回调,以及为什么要让 OnClickListener 接口成为开发人员实现的东西。它是可重复使用的。但也许我不太了解封装?或者我完全错过了接口和回调的意义?

这更多是一个概念性问题,我非常感谢任何解释该概念的答案以及可能要解释的简单/简短示例代码。

谢谢!

【问题讨论】:

  • OnClickListener 位于 View 类中,因为屏幕上可见的任何内容都是继承此类 View。所以以这种方式对其进行分类是很合乎逻辑的

标签: android interface encapsulation


【解决方案1】:

我们使用的主要视图是 View 类的子类。 See this

Android 在 View 类中定义了许多接口来处理一些事件,这些都是任何视图类型(Button、TextView 等)共有的。使 API 变得简单并为程序员提供更简单的方法。这其实就是OOPS中继承的概念。

如果您有任何疑问,请参阅 Android 开发者网站,您将在那里获得完整的详细信息。

【讨论】:

  • 哦!好的。我没有意识到 onclick() 是抽象的。换句话说,一个按钮和一个文本视图都可以有一个行为“onclick()”。现在说得通了。
【解决方案2】:

View 是 Button、TextView、EditText 等所有小部件的超类。

在点击事件中,我们应该知道调用了哪些小部件,这就是我们需要 View 作为参数的原因。 如果我们有多个视图,那么我们可以通过它的 id 来识别。

【讨论】:

    猜你喜欢
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多