动态添加Include标签,本质就是把Include标签当作一个Fragment就好了

在我的项目中的待办审核模块发现一个待办事件有多个发布渠道和审核内容。


所以之前在XML写死的布局代码已经不能使用了。


由于发布渠道和审核内容的界面布局是固定的,所以想到了用Include标签动态添加的方式来做。


for(int i=0;i<channels.size();i++){//循环看有几个发布渠道和发布内容的Model类
                                        View LayoutView=getLayoutInflater().inflate(R.layout.todo_list_include, null);//然后引入一次Include标签作为一个View来使用
                                        LayoutView.setId(i);
                                        includeLayout.addView(LayoutView);//在指定的区域中添加这个View
                                        String[] checkedPoint=channels.get(i).getChannelName().split(";");
                                        List<CheckBox> tempCheckBoxList=new ArrayList<CheckBox>();
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox1));//在指定的Include的View中将多选按钮中初始化
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox2));
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox3));
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox4));
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox5));
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox6));
                                        tempCheckBoxList.add((CheckBox)LayoutView.findViewById(R.id.CheckBox7));
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox1)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox2)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox3)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox4)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox5)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox6)).setEnabled(false);
                                        ((CheckBox)LayoutView.findViewById(R.id.CheckBox7)).setEnabled(false);
                                        
                                        for(int j=0;j<checkedPoint.length;j++){
                                        
                                            tempCheckBoxList.get(Integer.parseInt(checkedPoint[j])).setChecked(true);
                                            //CheckBox_List.get(Integer.parseInt(checkedPoint[j])).setChecked(true);
                                            
                                        }
                                        ((TextView)LayoutView.findViewById(R.id.content)).setText(BaseTools.ToDBC(channels.get(i).getContcent()));/在指定的Include的View中将ID为Content的TextView初始化并赋值
                                    }  





从这段代码中我们可以看到 我们将Include标签当作了一个Fragment来使用了,并将新增的Include标签加入到指定的布局位置上去。

但无论是初始化Include中的组件还是对Include中的组件赋值,基本上和Fragment的写法都是一样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值