final Button okButton = (Button)findViewById(R.id.okButton);
這是非常明確的,它是一個變量聲明+賦值,絕對不是一個對象! 如果是這樣,我該怎麼做以下,並實際在其操作方法:
okButton.setOnClickListener(this);
okButton.setOnLongClickListener(this);
?
它使混亂......
謝謝...
final Button okButton = (Button)findViewById(R.id.okButton);
這是非常明確的,它是一個變量聲明+賦值,絕對不是一個對象! 如果是這樣,我該怎麼做以下,並實際在其操作方法:
okButton.setOnClickListener(this);
okButton.setOnLongClickListener(this);
?
它使混亂......
謝謝...
如果你看看documentation for findViewById它需要一個int類型的參數,並返回一個視圖。
你前綴findViewById
與(Button)
告訴你期望的是通過R.id.okButton到findViewById將返回查看這實際上是Button (a sub-class of View)實例的系統。
該指令(Button)
casts查看返回findViewById
的類型按鈕並將其分配給您的變量okButton
。
所以
所以你說在Java中,參數實際上是一個具有一個屬性的對象?而對象和參數之間的不同僅僅是對象的屬性數量和關鍵字'new'? – Adam
編號參數是傳遞給方法的一條信息。它可以是像int或Object這樣的原始類型。 Object和參數的區別在於一個是Object,可以包含方法,另一個是參數(它們之間有很多不同)。你真的想讀基本的Java文檔和一些基本的面向對象的例子來獲得這些基本術語的含義直接 –
我知道所有這些,但似乎有什麼不同: 私人按鈕okButton =(按鈕)findViewById (R.id.okButton);對此:Button okButton = new Button(); okButton =(Button)findViewById(R.id.okButton)??? thx – Adam
Button okButton
意味着你已經創建了一個按鈕對象名稱okButton然後你通過你在xml中創建的按鈕類型對象實例化它,並給出了一個唯一的標識名okButton。
另一種方式是
Button okButton = new Button(this);
其實沒有區別它們之間接受第二你動態創建它,可以添加/刪除他們不接觸XML。
所以似乎有什麼不同:Button okButton = new Button(); ?? – Adam
在你的評論中你明確地創建了一個按鈕並將其分配給一個變量。在findViewById的情況下,您需要使用方法來獲取按鈕。你不需要知道或關心它是否產生了一個新的Button或獲得了一個已經存在的引用。 –
什麼是參數? – Rajesh
我的意思是一個變量......(固定的) – Adam