2008/3/2

Android猜數字簡單說明

我跟小花的結論差不多~
其實單就猜數字這個程式~ 只要看懂BMI
大家都可以再半個小時到一小時應該都可以輕鬆完成
但是要再進一步卻是難上加難~ 
不管如何就把我知道的先跟大家作個簡單的解釋吧~
我的程式比較簡單~ 沒有做太多的細部的東西~
主要著重在了解最簡單的程式流程,架構跟小花沒有什麼太大的差別~
大家可以交錯著看~ 應該很快就可以了解~

以下是幾個我覺得比較重要的部份


1. public void onCreate(Bundle icicle)
這個method感覺有點類似Java裡的main,實際上能不能那麼說我不敢肯定,但是至少確定在起始一個activity時,他會第一個被執行。
在大部分的sample裡他的第一行似乎都是super. onCreate(icicle),這種感覺有點像我們熟悉的super.paintComponent(g),實際上的意思也很像,因為onCreate著個method是屬於Activity下的,所以我們養成習慣先執行Activity預設的設定,然後再override我們想要的初始設定(有點初始化的意味)

2.setContentView(R.layout.main)
這個method主要是要設定我們已經預先用XML做好的UI,代替了過去我們在JFrame裡面add來add去的程式碼

3. findViewById(R.id.***)
這個method是我們的程式碼和XML溝通的重要橋樑,它可以透過XML檔裡各個物件的ID和你在android裡宣告的物件作對應,但是記得要經過強制轉型
EX:enter=(Button)findViewById(R.id.enter);

4.OnClickListener
這個物件很容易讓我們聯想到我們過去熟系的ActionListener,應該是眾多Listener的一種吧,使用方法也跟我們熟悉的一樣,必須先做setOnClickListener(handler);,當我們設定好以後,當我們按下按鈕,他收到的是一個View(你可以說他是一個按鈕或是其他UI上的物件),告知你這個事件是來自誰被觸動所造成
  if(view==restart)
{
answer=1+gen.nextInt(1000);
log.setText("答案更新\n請輸入一個數字(1~1000)\n");
input.setText("");
}
像上面的程式碼白話的說就是,這個事件是有人按下的restart這個按鈕觸發的
(小花的程式碼是用if(view.getID==R.id.***) 意思應該是一樣的~)

5.android:id
在android的XML中,每一個tag的屬性前面通常會有android :來標明它屬於android的命名空間,但是我們之前找到的那個XML產生軟體卻總是會少掉id前面的android: 造成程式最後會有nullPointer的情況出現,所以如果要偷懶用那個GUI產生軟體,至少要手動加上這個

6. < ScrollView >
這是我順便發現的,大家如果執行我的程式,會發現我程式中間那塊顯示答題狀態的TextView當行數太多時,會產上scroll的效果,只要注意main.xml在想想過去在java中scrollpane的道理就可以了解他怎麼出現的了

===============================================

其實從禮拜四Meeting就大概知道要怎麼寫,但是後來這兩天的進度卻幾乎算是停滯不前,進一步的文件就像小花說的,我們太弱了orz~

等到有更進一步的心得在繼續跟大家分享吧.......

---我的程式碼 ---



沒有留言: