View arg0和View v有什么区别?

时间:2015-01-08 08:13:38

标签: java android eclipse

我为我的代码编写了一个xml文件,它有2个按钮。但是,默认情况下,java文件中的按钮显示了这一点。

BCel.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        output=(input-32)*5/9;  
    }
});
BFah.setOnClickListener(new View.OnClickListener() {    
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        output=1.8*input+32;
    }
});

(输出= ......显然是我写的)

我不明白为什么它在第一个中显示arg0而在第二个中显示v。 其他类似的问题问为什么它显示arg0,arg1,ar2等,但我不理解这种变化。

这会导致我的申请中出现任何错误吗?

4 个答案:

答案 0 :(得分:2)

arg0v只是变量名称。您可以选择任何有效的Java标识符。

  

我不明白为什么它在第一个中显示arg0而在第二个中显示v。

如果您在Eclipse中选择“OnClickListener中的覆盖方法”选项,或者让Eclipse填写匿名类中的方法,它将自动选择与重写方法相同的变量名称(和arg N 如果未附加源代码。)

  

这会导致我的申请中出现任何错误吗?

不,只要您坚持使用有效的Java标识符,就不会导致任何错误。

答案 1 :(得分:0)

使用不同的名称不会导致应用程序出错。它们是这些方法的参数名称。当您使用new View.OnClickListener() {...}实例化匿名类时,很可能只是Eclipse自动生成参数名称,但您可以使用任何有效的Java标识符。

答案 2 :(得分:0)

arg0和v之间没有任何区别。两者都只是标识符 可能是因为你有错误 本声明

  output=1.8*input+32;

可能会出现错误等,具体取决于"输入"

的数据类型

答案 3 :(得分:0)

您可以使用任何名称作为变量并不重要。您收到错误,因为input是未定义的符号。你必须在使用之前声明它。