Android 动态添加view

Android 动态添加view

第一次写博客,记录一下平时出现bug。
这两天写一个东西,要动态的循环的添加一个layout,走了一点弯路,说实话,我也是一个android菜鸟,好记性不如烂笔头,现在记录下来,以免以后在遇到这样的坑。
进入主题,直接上代码
private void initAttributesView(List attributes) {
// TODO Auto-generated method stub
for (int i = 0; i < attributes.size(); i++) {
//这里一定要new 新的实例,不然怎么运行都添加不了一个wiew;
//View.inflate(context, R.layout.lv_item_service_standar_gv, this);之前这样写,结果怎么都不好使。
GridViewItemView view = new GridViewItemView(ServiceStandardActivity.this);
final ServiceStandOrderByGvAdapter mAdapter = new ServiceStandOrderByGvAdapter(ServiceStandardActivity.this);
TextView attributesName = (TextView) view.findViewById(R.id.service_standar_attrName);
ScrollViewItemGv attributesGv = (ScrollViewItemGv) view.findViewById(R.id.service_standar_gv);
attributesName.setText(attributes.get(i).getAttrName());
mAdapter.setBindData(attributes.get(i).getOptions());
mAdapter.setMapKey(attributes.get(i).getAttrId());
mAdapter.setAdapterCallBack(mCallback);
list.add(mAdapter);
listGv.add(attributesGv);
listGv.get(i).setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
mCarOrder.addView(view);
listGv.get(i).setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    // TODO Auto-generated method stub
                    mAdapter.setSeclection(position);
                    Options options = mAdapter.getItem(position);
                    setItemView(options, mAdapter);
                }
            });
        }

    }

    private void setItemView(Options options, ServiceStandOrderByGvAdapter mAdapter) {
        if (options != null) {
            mCarSelectType.setText(options.getOptionName());
            mCarSelectNub.setText(options.getRecommendDesc());
            mCarSelectDesc.setText(options.getRecommendDetail());
            mCarSelectUseDesc.setText(options.getBrandDesc());
            optionIdsMap.put(mAdapter.getMapKey(), options.getOptionId());
            if (!TextUtils.isEmpty(options.getDescriptionUrl())) {
                morlLoding = options.getDescriptionUrl();
            }
            if (!TextUtils.isEmpty(options.getRecommendDesc()) && !TextUtils.isEmpty(options.getRecommendDetail())) {
                mCarSelectLay.setVisibility(View.VISIBLE);
            }
            if (!TextUtils.isEmpty(options.getBrandDesc())) {
                mServiceStandardButtonLay.setVisibility(View.VISIBLE);
            }
        }
        Animation anim1 = AnimationUtils.loadAnimation(getContext(), R.anim.layout_out_to_left);
        mCarSelectLay.setAnimation(anim1);
        if (optionIdsMap.size() > 1) {
            mCarSelectBuss.setClickable(true);
        }
        mAdapter.notifyDataSetChanged();
    }

//这个就是实例化的layout
public class GridViewItemView extends LinearLayout {
private Context context;

public GridViewItemView(Context c) {
    super(c);
    // TODO Auto-generated constructor stub
    context = c;
    initView();
}

private void initView() {
    View.inflate(context, R.layout.lv_item_service_standar_gv, this);
}

}

布局文件就不添加 了,这是我们现在开发的项目文件。把主要的思路和代码拿出来就行了、、、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值