2011-06-06 54 views
6

我剛開始學習android編程,在通過android Tab Layout教程工作時,我注意到他們用下面的代碼創建了一個新的Intent。Android意圖,關於setClass()的問題

// Create an Intent to launch an Activity for the tab (to be reused) 
intent = new Intent().setClass(this, ArtistsActivity.class); 

截至目前爲止,所有我讀過的書已創建使用

intent = new Intent(this, ArtistActivity.class); 

一個新的意圖,想知道是否有代碼的兩行之間的差異。

回答

5

它們是等價的。

基於來自教程評論...

// Create an Intent to launch an Activity for the tab (to be reused) 

看來他們只是使用的,而不是接受一個類作爲意向項創建會有重複使用,以更明確的Constructor.setClass()方法並且.setClass()可能會再次被調用。

+0

啊,我以爲他們做了同樣的事情。我對編程還很陌生,有時候很難理解API文檔,所以我只需要確認。謝謝 – user786362 2011-06-06 19:21:15

1

沒有實際區別。關於如何完成,只是有所不同。一個使用構造函數,另一個使用setter。但最終的結果是完全一樣的。請參閱documentation.

0

當相同意圖根據某些條件可能有兩個不同的類別時,您可以使用.setClass。這裏是一個例子:

Intent resultIntent = new Intent(); 

    if (condition) { 
    resultIntent.setClass(getApplicationContext(), XXXX.class); 
       startActivity(resultIntent); 
    }else { 
    resultIntent.setClass(getApplicationContext(), YYYY.class); 
    }