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