Java,Android将params传递给方法

时间:2014-06-17 06:05:38

标签: java android

我正在通过Android开发人员tutorial工作,现在我们正在创建一个方法来匹配我们为android:onClick="sendMessage"提供的方法名称。

以下是方法:

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    // Do something in response to button
}

文字说明了这个方法:

为了使系统将此方法与给予android:onClick的方法名称相匹配,签名必须完全如图所示。具体来说,该方法必须:

  • 公开
  • 具有无效返回值
  • 将视图作为唯一参数(这将是单击的视图)

我理解为什么它必须公开以及为什么返回值为void,但为什么该方法采用(View view)而不仅仅是(view)?我来自Ruby背景,所以语法让我感到困惑。为什么我们传递这样的参数?

2 个答案:

答案 0 :(得分:1)

why does the method take (View view) instead of just (view)?

View表示它是classview只是variable,而{2}正在使view variable成为View class的对象可以调用它的所有方法。

答案 1 :(得分:0)

这是因为onClick() 接口中的OnClickListener方法需要View类型的参数。当您删除参数时,Android仍会尝试调用方法sendMessage(View view),但该方法不再存在,因此您会收到错误,应用会强行关闭。

参数视图是单击的实际视图(在您的情况下为按钮)。这样,您可以指定多个按钮来调用相同的方法,并在方法内部检查单击了哪个按钮。

有关详细信息,请参阅此LINK