2015年5月19日 星期二

L3: 使用 textView 當輸出

在C程式語言的學習過程中,常會用到 printf 來輸出結果,到了Android app的設計,要怎樣輸出結果到畫面上? 其實也有很多方法,利用元件當輸出也是一種方式。

本例使用 textView作為輸出元件,將 1 ~ 50 的整數顯示出來。

1. 利用前面所學,將 textView 擺到畫面中,為了讓 textView在超過螢幕範圍時,可以上下捲動,再加上一個 scrollView 做垂直方向的捲動,而textView應該放在 scrollView裡面,完成後架構如下:

2. 到 app / java 下找出 MainActivity.java 裡的 OnCreate 中加入程式就ok了 ,如下圖所示。


3. 解釋一下程式內容:

    TextView tt = (TextView) findViewById(R.id.textView);

這行可以找到畫面中放入的 textView 元件,程式撰寫時可以善用intellisense與alt-Enter的功能,減少記憶的負擔。以此行為例,先鍵入大寫 T,intellisense就會找到 TextView,選取按Enter就打好了,再輸入自訂變數名稱 (此例為tt),加上 = f,findViewById 又出現了,在()裏輸入 id.t,R.id.textView又出現了,最後在 )後補上一個分號 ;,此時整段下方出現紅色毛毛蟲底線,按下alt+Enter,選取第一項 cast to ...後按下Enter,本行就打好了。

   for (int i=0; i<50; i++)
       tt.setText(tt.getText()+"\n"+Integer.toString(i));

這段則是 for 迴圈的基本使用,不再贅述。而控制重複的指令中使用的方法如下:
         tt.setText(string) : 設定 tt 元件的顯示字串為 string
         tt.getText() : 取得 tt 元件的顯示字串
         "\n" : 換行字符
        Integer.toString(i) : 將變數 i 的內容轉換成字串。此例也可不需要使用此方法,直接寫 + i就好了,java可以自動轉換型態。

4. 要讓 scrollView寬度與畫面相同,就要設定其 layout:width 為 fill_parent。

5. 完工。

6. 試試下面的程式,也是程式設計課程中巢狀迴圈的常見範例。

tt.setText("");
for (int i=0; i<=5; i++) {
    for (int j=0; j<i; j++)
      tt.setText(tt.getText() + "*");
    tt.setText((tt.getText()+"\n"));
}

沒有留言:

張貼留言