iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
Mobile Development

android studio 30天初學筆記系列 第 11

Android Studio初學筆記-Day11-Checkbox

  • 分享至 

  • xImage
  •  

Checkbox(可複選按鈕)

Checkbox是可複選按鈕,不同於前一章的RadioButton,用起來比較直接,選甚麽就是甚麼也不用分群,比較常見的例子像是點餐或者問卷調查都有它的身影。今天也透過一個點餐的例子來帶大家了解Checkbox簡單的用法。
首先拉出一個點餐的介面,填上菜單內容、執行點餐的按鈕和顯示點單的內容。

介面

https://ithelp.ithome.com.tw/upload/images/20210907/20139136cSTIrE8Fva.png

來到MainActivity.java

程式碼

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void order(View v){
        CheckBox chk;
        String msg ="";
        int id[] ={R.id.cb1,R.id.cb2,R.id.cb3,R.id.cb4,R.id.cb5,R.id.cb6};

        for(int i:id){
            chk =(CheckBox)findViewById(i);
            if(chk.isChecked())
                msg+="\n"+chk.getText();
        }
        if(msg.length()>0)
            msg="你點購的是"+msg;
        else
            msg ="請選擇餐點!";

        TextView tx1 = (TextView)findViewById(R.id.tx1);
        tx1.setText(msg);
    }
}

這裡有個小技巧,如果Checkbox數量很多,可以透過陣列和forloop來完成宣告物件,這可以讓程式看起來更簡潔,而不用一行又一行的複製。這裡我用的forloop格式也不太一樣,不是常見的for(;;)格式,不過這個格式我認為對讀取陣列數值蠻方便的,這種寫法主要運作概念是把我宣告的int型態變數i依序讀取成id陣列中的值,這樣就可以透過i直接取用id陣列內的id了,最後透過isCheck()函數(回傳值為boolean型態)來檢視按鈕是否被選取,如過有被選取則加入設定好的String中。

成果

https://ithelp.ithome.com.tw/upload/images/20210907/20139136Yk94tOCz4x.png
Checkbox就講到這裡,謝謝大家。/images/emoticon/emoticon41.gif


上一篇
Android Studio初學筆記-Day10-RadioButton
下一篇
Android Studio初學筆記-Day12-Spinner
系列文
android studio 30天初學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言