我學習Android和不知道的Java(還),發現在一個示例代碼聲明:「x =(something)」在java中意味着什麼?
TextView mainTextView;
mainTextView = (TextView) findViewById(R.id.main_textview);
所以,問題是(作爲標題說):什麼是「=(... )「 意思?
我學習Android和不知道的Java(還),發現在一個示例代碼聲明:「x =(something)」在java中意味着什麼?
TextView mainTextView;
mainTextView = (TextView) findViewById(R.id.main_textview);
所以,問題是(作爲標題說):什麼是「=(... )「 意思?
創建objectref爲對象的TextView
TextView mainTextView;
findViewById是具有參數和R.id.main_textview返回的值的方法是越來越澆鑄到TextView的類型和存儲在mainTextView
mainTextView = (TextView) findViewById(R.id.main_textview);
這意味着findViewById方法將XML元素轉換爲TextView。
不將XML元素轉換爲TextView。將視圖投射到TextView。 findViewById返回一個View對象 –
View是一個XML元素。它在佈局文件中聲明和訪問 – andrewdleach
視圖是一個Java對象。 Android使用XML來定義佈局和其他項目的值。儘管XML不是一種Java對象。 – dharms
的方法findViewById
有以下簽名:
public View findViewById (int id)
這意味着它返回一個通用的非指定的View
。
因爲你的代碼顯然需要有更具體的(類層次的意思)TextView
工作,它是由findViewById
返回值之前預先考慮(TextView)
類型強制轉換到TextView
。
雖然它是一種常見的做法,這是一種危險的,因爲它假定通過findViewById
返回的值是在這種情況下,類型TextView
的。如果不是,您將得到一個運行時異常ClassCastException
這是一個賦值語句,它是Java中最基本的結構之一。我建議在嘗試編寫Android應用程序之前至少學習Java語言的基礎知識。 –
將一種類型投射到其他類型 – Andrew