首页 > 解决方案 > Android新添加的代码控件由原来的XML控件改变

问题描述

我想添加微调器,并且edittext在我android activity的上面button click看起来与最初添加的xml file. spinneredittext字段在正确的button click位置正确添加。

控件在 MainActivity.java 中添加了代码

btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                productsIds++;
                LinearLayout lv = findViewById(R.id.lnear_layout);
                lv.addView(createLinearLayout());
            }
            public Spinner createProductSpinner() {
                final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(Math.round(getResources().getDimension(R.dimen.product_width)), Math.round(getResources().getDimension(R.dimen.control_height)));
                final Spinner spinner = new Spinner(MainActivity.this);
                spinner.setLayoutParams(lparams);
                spinner.setAdapter(productAdapter);
                return spinner;
            }
            public EditText createQuantityEditText() {
                final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(Math.round(getResources().getDimension(R.dimen.quantity_width)), Math.round(getResources().getDimension(R.dimen.control_height)));
                final EditText editText = new EditText(MainActivity.this);
                editText.setLayoutParams(lparams);
                editText.setMovementMethod(new ScrollingMovementMethod());
                editText.setHint("Quantity");
                return editText;
            }
            public Spinner createUnitSpinner() {
                final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(Math.round(getResources().getDimension(R.dimen.unit_width)), Math.round(getResources().getDimension(R.dimen.control_height)));
                final Spinner spinner = new Spinner(MainActivity.this);
                spinner.setLayoutParams(lparams);
                spinner.setAdapter(productAdapter);
                return spinner;
            }

            public LinearLayout createLinearLayout() {
                final LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                final LinearLayout subLayout = new LinearLayout(MainActivity.this);
                subLayout.setOrientation(LinearLayout.HORIZONTAL);
                subLayout.setLayoutParams(lparams);
                subLayout.addView(createProductSpinner());
                subLayout.addView(createQuantityEditText());
                subLayout.addView(createUnitSpinner());
                return subLayout;
            }
        });

标签: androidandroid-layout

解决方案


推荐阅读