2015-01-08 44 views
1

我爲我的代碼寫了一個xml文件,它有2個按鈕。不過,默認情況下java文件中的按鈕顯示了這一點。查看arg0和查看v有什麼區別?

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等,但我不明白這個變種。

這會在我的應用程序中導致任何錯誤嗎?

回答

2

arg0v只是變量名稱。您可以選擇任何有效的Java標識符。

我不明白的是爲什麼它在第一個顯示arg0,第二個顯示爲v。

如果您在Eclipse中,選擇選項「在OnClickListener覆蓋法」還是讓Eclipse中填補了一個匿名類的方法,它會自動選擇相同的變量名被覆蓋的方法(和精氨酸如果源代碼未附加)。

這會導致我的應用程序出現任何錯誤嗎?

不,只要你堅持有效的Java標識符,它不會導致任何錯誤。

0

具有不同的名稱不會在您的應用程序中導致錯誤。它們是這些方法的參數名稱。當您使用new View.OnClickListener() {...}實例化匿名類時,很可能只是Eclipse自動生成參數名稱,但您可以使用任何有效的Java標識符。

0

arg0和v之間沒有任何區別。兩者都只是標識符 可能是你因 本聲明

output=1.8*input+32; 

可能會因「輸入」的數據類型

0

你可以使用任何名字變量不要緊被鑄造錯誤等有錯誤。因爲input是未定義的符號,所以出現錯誤。你必須在使用之前聲明它。

+0

'input'和'output'可以是封閉類的字段。 – aioobe

+0

是的。他們被定義。 @aioobe是對的 –