利用XML布局文件动态创建CheckBox

要动态创建CheckBox,一个比较好的考虑是:

单纯考虑设置组件的属性,XML布局文件无疑是最简单的方法。可以在XML布局文件中先配置一个或若干CheckBox,然后以这些配置为模板来动态创建CheckBox对象

这里先 定义一个String 数组,数组元素表示CheckBox的文本,然后根据String数组的元素个数来创建CheckBox对象

步骤如下:

1.  使用getLayoutInflater().inflate()方法来装载main.xml布局文件,并返回一个LinearLayout对象(linearLayout).

2.  使用getLayoutInflater().inflate()方法来装载checkbox.xml布局文件,并返回一个LinearLayout对象(checkboxLinearLayout).

3.  调用checkboxLinearLayout.findViewById()方法来获得CheckBox对象,并根据String数组中的值设置CheckBox的文本。

4.  调用linearLayout.addView()方法将checkboxLinearLayout添加到linearLayout中。

5.  根据String数组的元素重复第2,3,4 步,直到处理完String数组中的最后一个元素为止.

实现效果如图所示:

在onCreate()动态创建CheckBox对象的代码如下:

public void onCreate(Bundle bundle)  {
    super.onCreate(bundle);
    String[]  checkboxText = new String[]{"Android","iPhone","Windows Mobile","Symbian","Meego","BlackBeery","Palm"};
    //装载main.xml文件
   LinearLayout  linearLayout  = (LinearLayout)getLayoutInflater().inflate(R.layout.main,null);
   for(int i=0;i<checkboxText.length;i++)   {
       //装载checkbox.xml文件
       LinearLayout  checkboxLinearLayout =  (LinearLayout) getLayoutInflater().inflate(R.layout.checkbox,null);
       //获得checkbox.xml文件中的CheckBox对象
       checkboxs.add((CheckBox)checkboxLinearLayout.findViewById(R.id.checkbox));
       checkboxs.get(i).setText(checkboxText[i]);      //设置CheckBox的文本
       //将包含  CheckBox  的LinearLayout 对象添加到由主布局文件生成的LinearLayout 对象中
       linearLayout.addView(checkboxLinearLayout,i); 
   }
   setContentView(linearLayout);
   Button button = (Button) findViewById(R.id.button);
   button.setOnClickListener(this);
}

具体代码见  ch05_dynamiccheckbox工程

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值