Android 动态添加view

来源:互联网 发布:燕十八php教程怎么样 编辑:程序博客网 时间:2024/05/21 10:53

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);}

}

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

0 0
原创粉丝点击