2010年11月24日 星期三

[Android SDK 入門] 3-4 勾選式控制項 - CheckBox

前言 : 
android.widget.CheckBox 控制項是用來多選使用的, 使用 isChecked() 方法來判斷是否被勾選, 當被勾選/沒被勾選時就可以依據使用情節做對應的動作, 這是 CheckBox 控制項的主要用法, 用來做為邏輯上或者判斷上的分岔. 

主要功能介紹 : 
在畫面上配置 8 個 CheckBox 控制項, 讓使用者自由地勾選, 當底下的Button 被按下後程式會檢查並橋接所有被勾選的 CheckBox 控制項上的文字並顯示於當前 Activity 的標題. 

範例代碼 : 
請依 3-1 節介紹設定好 main.xml (添加展示Button), ControlItemsDemo.java (添加展示Button 的監聽行為) 與 AndroidManifest.xml (註冊 CheckBox Activity). 


- SampleCheckBox.java : CheckBox demo 的 Activity
  1. package john.controlitems.demo;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.widget.Button;  
  7. import android.widget.CheckBox;  
  8. import android.widget.Toast;  
  9.   
  10. public class SampleCheckBox extends Activity {  
  11.     private Button btn_Select;  
  12.     private CheckBox cb_Cloth;  
  13.     private CheckBox cb_Entertain;  
  14.     private CheckBox cb_Leisure;  
  15.     private CheckBox cb_Electric;  
  16.     private CheckBox cb_Cosmetic;  
  17.     private CheckBox cb_Wholesalse;  
  18.     private CheckBox cb_Services;  
  19.     private CheckBox cb_Home;  
  20.       
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.sample_check_box);  
  25.         findViews();  
  26.         addListener();  
  27.     }  
  28.       
  29.     protected void findViews(){  
  30.         btn_Select = (Button)findViewById(R.id.btn_Select);  
  31.         cb_Cloth = (CheckBox)findViewById(R.id.cb_Cloth);  
  32.         cb_Entertain = (CheckBox)findViewById(R.id.cb_Entertain);  
  33.         cb_Leisure = (CheckBox)findViewById(R.id.cb_Leisure);  
  34.         cb_Electric = (CheckBox)findViewById(R.id.cb_Electric);  
  35.         cb_Cosmetic = (CheckBox)findViewById(R.id.cb_Cosmetic);  
  36.         cb_Wholesalse = (CheckBox)findViewById(R.id.cb_Wholesalse);  
  37.         cb_Services = (CheckBox)findViewById(R.id.cb_Services);  
  38.         cb_Home = (CheckBox)findViewById(R.id.cb_Home);       
  39.     }  
  40.       
  41.     protected void addListener(){  
  42.         btn_Select.setOnClickListener(new Button.OnClickListener(){  
  43.             @Override  
  44.             public void onClick(View v) {  
  45.                 String s_Checked="";  
  46.                 if(cb_Cloth.isChecked()) {  
  47.                     s_Checked += cb_Cloth.getText()+", ";  
  48.                 }  
  49.                 if(cb_Entertain.isChecked()) {  
  50.                     s_Checked += cb_Entertain.getText()+", ";  
  51.                 }  
  52.                 if(cb_Leisure.isChecked()) {  
  53.                     s_Checked += cb_Leisure.getText()+", ";  
  54.                 }  
  55.                 if(cb_Electric.isChecked()) {  
  56.                     s_Checked += cb_Electric.getText()+", ";  
  57.                 }  
  58.                 if(cb_Cosmetic.isChecked()) {  
  59.                     s_Checked += cb_Cosmetic.getText()+", ";  
  60.                 }  
  61.                 if(cb_Wholesalse.isChecked()) {  
  62.                     s_Checked += cb_Wholesalse.getText()+", ";  
  63.                 }  
  64.                 if(cb_Services.isChecked()) {  
  65.                     s_Checked += cb_Services.getText()+", ";  
  66.                 }  
  67.                 if(cb_Home.isChecked()) {  
  68.                     s_Checked += cb_Home.getText()+", ";  
  69.                 }  
  70.                 setTitle("Black List: "+s_Checked);  
  71.                 if(s_Checked.trim().length()>0) {  
  72.                     Toast.makeText(SampleCheckBox.this"設置黑名單成功!", Toast.LENGTH_LONG).show();   
  73.                 }  
  74.             }  
  75.               
  76.         });  
  77.     }  
  78. }  

顯示範例結果 : 
請在主程式畫面點擊按鈕 "勾選式控制項 - CheckBox" 進入 CheckBox demo Activity. 
Step1 : 請選取任意CheckBox 後點選按鈕 "確定" 
 
Step2 : 當前 Activity 的標題變更為點選 CheckBox 內容的疊接. 

沒有留言:

張貼留言

[Git 常見問題] error: The following untracked working tree files would be overwritten by merge

  Source From  Here 方案1: // x -----删除忽略文件已经对 git 来说不识别的文件 // d -----删除未被添加到 git 的路径中的文件 // f -----强制运行 #   git clean -d -fx 方案2: 今天在服务器上  gi...