[問題] findviewById 與變數宣告的問題

看板AndroidDev作者 (aligu)時間13年前 (2013/02/16 23:04), 編輯推噓4(4016)
留言20則, 5人參與, 最新討論串1/1
請問,我在書上看到一段程式碼: (前略) 1 private Button btnDo; 2 private TextView txtShow; 3 4 @Override 5 public void onCreate(Bundle savedInstancesState) { 6 super.onCreate(savedInstancesState); 7 setContentView(R.layout.main); 8 btnDo = (Button)findViewById(R.id.button1); 9 textShow = (TextView)findViewById(R.id.textView1); 10 } (後略) 第1及第2行:宣告二個變數btnDo及textShow,其類別分別是Button及TextVew 第一個問題是,這兩個變數,算不算”物件”?還是只是一個單純 "變數”而已? 第8及第9行:用FindViewById()方法出來的東西指定給btnDo及textShow,     究竟是指定了什麼?所有button1或textView1元件的值全指定給 btnDo及textShow這兩個變數(或物件?)?     前面的(Button)和(TextView)是什麼意思?     我看到有其他書的類似寫法是: Button btnDo = (Button)findViewById(R.id.button1) ^^^^^^ 多了這一個有何差異?   謝謝。  -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.137.56

02/16 23:22, , 1F
這...閣下應該沒學過寫程式?
02/16 23:22, 1F

02/16 23:23, , 2F
或是沒寫過C or JAVA
02/16 23:23, 2F

02/16 23:27, , 3F
如果真的是這樣的話,我建議你先從基本的JAVA學起
02/16 23:27, 3F

02/16 23:27, , 4F
這些問題你可能就會了解一些了
02/16 23:27, 4F

02/16 23:28, , 5F
回樓上,第一次碰java,也是第一次碰物件導向..
02/16 23:28, 5F

02/16 23:45, , 6F
先去學java再學android。不要急著直接看android的code
02/16 23:45, 6F

02/16 23:48, , 7F
謝謝樓上二位的建議,我也想說先去學java再回來碰android好
02/16 23:48, 7F

02/16 23:49, , 8F
了。本來一路看書都還勉強可以理解,在書上講到gallery元件
02/16 23:49, 8F

02/16 23:50, , 9F
時開始講到自訂類別及繼承bassAdapter的作法時,整個腦袋馬
02/16 23:50, 9F

02/16 23:51, , 10F
上爆掉 = =
02/16 23:51, 10F

02/17 00:05, , 11F
findViewById()回傳View類別,要指定給Button就要強轉(ca
02/17 00:05, 11F

02/17 00:05, , 12F
st)
02/17 00:05, 12F

02/17 00:07, , 13F
這裡能做cast是因為Button是View的子類別,否則會有Excep
02/17 00:07, 13F

02/17 00:07, , 14F
tion
02/17 00:07, 14F

02/17 00:07, , 15F
還是先學怎麼寫最簡單的程式吧
02/17 00:07, 15F

02/17 00:09, , 16F
btnDo這個變數宣告說要指向Button類別的物件
02/17 00:09, 16F

02/17 00:09, , 17F
你要看的書應該不是android 應該是基本程式語言教學?
02/17 00:09, 17F

02/17 00:10, , 18F
但真正指到一個Button物件時是第八行
02/17 00:10, 18F

02/17 00:13, , 19F
至於到底有哪些物件能用、常用的有是哪些,官網文件跟範
02/17 00:13, 19F

02/17 00:13, , 20F
例很豐富…
02/17 00:13, 20F
文章代碼(AID): #1H7v_hEv (AndroidDev)