2015-07-02 74 views
-10

我學習Android和不知道的Java(還),發現在一個示例代碼聲明:「x =(something)」在java中意味着什麼?

TextView mainTextView; 
mainTextView = (TextView) findViewById(R.id.main_textview); 

所以,問題是(作爲標題說):什麼是「=(... )「 意思?

+8

這是一個賦值語句,它是Java中最基本的結構之一。我建議在嘗試編寫Android應用程序之前至少學習Java語言的基礎知識。 –

+0

將一種類型投射到其他類型 – Andrew

回答

2

創建objectref爲對象的TextView

TextView mainTextView; 

findViewById是具有參數和R.id.main_textview返回的值的方法是越來越澆鑄到TextView的類型和存儲在mainTextView

mainTextView = (TextView) findViewById(R.id.main_textview); 
1

這意味着findViewById方法將XML元素轉換爲TextView。

+0

不將XML元素轉換爲TextView。將視圖投射到TextView。 findViewById返回一個View對象 –

+0

View是一個XML元素。它在佈局文件中聲明和訪問 – andrewdleach

+0

視圖是一個Java對象。 Android使用XML來定義佈局和其他項目的值。儘管XML不是一種Java對象。 – dharms

0

的方法findViewById有以下簽名:

public View findViewById (int id) 

這意味着它返回一個通用的非指定的View

因爲你的代碼顯然需要有更具體的(類層次的意思)TextView工作,它是findViewById返回值之前預先考慮(TextView)類型強制轉換TextView

雖然它是一種常見的做法,這是一種危險的,因爲它假定通過findViewById返回的值是在這種情況下,類型TextView的。如果不是,您將得到一個運行時異常ClassCastException