当前位置: 首页 > 知识库问答 >
问题:

如何在单击按钮时从每个动态旋转器获得所有选定的值

桂智志
2023-03-14

我已经用动态布局中的值创建了动态旋转器。旋转器将通过按钮单击显示。

如果我显示了多个旋转器,如何从所有旋转器中获得选定的值。

代码:公共类MainActivity扩展活动{string[]itemlist={“select item”,“apple”,“mango”,“grapes”};int[]itemrate={0,10,8,6};Spinner itemspinner;Button btnPlus,btndinus;int i=1;LinearLayout main;List row_list=new ArrayList();List qty_list=new ArrayList();TextView txt_nettotal,txt_qty;

String text;
String pres_doctor;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    main = (LinearLayout) findViewById(R.id.main);
    txt_qty =new TextView(this);

    addNewRow();
    Button btnadd = (Button) findViewById(R.id.add_new_row);
    btnadd.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            addNewRow();
        }
    });
    Button btnSubmit=(Button)findViewById(R.id.btn_submit);
    btnSubmit.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {






        }
    });

}

private LinearLayout CreateSpinner() {

    final LinearLayout rowLayout = new LinearLayout(this.getApplicationContext());
    final TextView serialNumberText = new TextView(this);
    serialNumberText.setText(String.valueOf(i++));
    ItemSpinner = new Spinner(this);
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, itemlist);
    adapter1.setDropDownViewResource(android.R.layout.select_dialog_item);
    ItemSpinner.setAdapter(adapter1);

    text = ItemSpinner.getSelectedItem().toString();

    final EditText ItemQuantity = new EditText(this);
    int x = 0;
    ItemQuantity.setText("" + x);
    ItemQuantity.setTextColor(Color.GREEN);
    ItemQuantity.setInputType(InputType.TYPE_CLASS_NUMBER);
    ItemQuantity.setGravity(Gravity.CENTER);

    final EditText ItemPrice = new EditText(this);
    ItemPrice.setText("0");
    ItemPrice.setTextColor(Color.GREEN);
    final EditText RowTotal = new EditText(this);
    RowTotal.setText("0");
    RowTotal.setTextColor(Color.BLUE);


    AdapterView.OnItemSelectedListener onItemSelectedListener1 =
            new AdapterView.OnItemSelectedListener() {

                @Override
                public void onItemSelected(AdapterView<?> parent, View view,
                                           int position, long id) {

                    pres_doctor = ItemSpinner.getSelectedItem().toString();
                    RowTotal.setText("0");
                    String val = String.valueOf(itemrate[position]);
                    ItemPrice.setText(val);
                    ItemPrice.setGravity(Gravity.CENTER);
                    int Quantity = Integer.parseInt(ItemQuantity.getText().toString());
                    int Price = Integer.parseInt(ItemPrice.getText().toString());
                    RowTotal.setText(String.valueOf(Quantity * Price));
                    txt_nettotal = (TextView) findViewById(R.id.textView);
                    txt_nettotal.setTextColor(Color.BLUE);
                    int value = 0;
                    for (EditText editText : row_list) {
                        int list = Integer.parseInt(editText.getText().toString());
                        value += list;
                    }
                    txt_nettotal.setText(String.valueOf(value));

                }


                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }

            };
    ItemSpinner.setOnItemSelectedListener(onItemSelectedListener1);


    btnMinus = new Button(this);
    btnMinus.setText("-");
    btnMinus.setTextColor(Color.BLACK);
    btnMinus.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            int oldValue = Integer.parseInt(ItemQuantity.getText().toString());
            int newValue = 0;
            if (oldValue > 0) newValue = oldValue - 1;
            ItemQuantity.setText(String.valueOf(newValue));
            ItemQuantity.setGravity(Gravity.CENTER);
            final TextView txt_nettotal = (TextView) findViewById(R.id.textView);
            txt_nettotal.setTextColor(Color.BLUE);
            int value = 0;
            for (EditText editText : row_list) {
                int m = Integer.parseInt(editText.getText().toString());
                value += m;
            }
            txt_nettotal.setText(String.valueOf(value));

        }
    });

    btnPlus = new Button(this);
    btnPlus.setText("+");
    btnMinus.setTextColor(Color.BLACK);
    btnPlus.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            int oldValue = Integer.parseInt(ItemQuantity.getText().toString());
            ItemQuantity.setText(String.valueOf(oldValue + 1));
            ItemQuantity.setGravity(Gravity.CENTER);
            final TextView txt_nettotal = (TextView) findViewById(R.id.textView);
            txt_nettotal.setTextColor(Color.BLUE);
            int value = 0;
            for (EditText editText : row_list) {
                int m = Integer.parseInt(editText.getText().toString());
                value += m;

            }
            txt_nettotal.setText(String.valueOf(value));

        }
    });
    ItemQuantity.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            try {
                int Quantity = Integer.parseInt(ItemQuantity.getText().toString());
                int Price = Integer.parseInt(ItemPrice.getText().toString());
                RowTotal.setText(String.valueOf(Quantity * Price));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
    row_list.add(RowTotal);
    qty_list.add(ItemQuantity);
    rowLayout.addView(serialNumberText);
    rowLayout.addView(ItemSpinner);
    rowLayout.addView(btnMinus);
    rowLayout.addView(ItemQuantity);
    rowLayout.addView(btnPlus);
    rowLayout.addView(ItemPrice);
    rowLayout.addView(RowTotal);

    return rowLayout;
}

private void addNewRow() {
    GridLayout gridLayout = new GridLayout(this);

    gridLayout.addView(CreateSpinner());

    main.addView(gridLayout);
}

共有1个答案

司徒耀
2023-03-14

您可以在列表中添加旋转器

    List<Spinner> list=new ArrayList<>();

//and getting all spinner selected value

       for(int i=0;i<list.size();i++)
        {
            list.get(i).getSelectedItemPosition()
        }
 类似资料:
  • 问题内容: 我的JS程序遇到一些奇怪的问题。我的工作正常,但由于某种原因,它不再工作。我只想查找单选按钮的值(已选中该按钮)并将其返回给变量。由于某种原因,它不断返回。 这是我的代码: : HTML: 问题答案: 您可以执行以下操作:

  • 问题内容: 我的JS程序遇到一些奇怪的问题。我的工作正常,但由于某种原因,它不再工作。我只想查找单选按钮的值(已选中该按钮)并将其返回给变量。由于某种原因,它不断返回。 这是我的代码: : HTML: 问题答案: 您可以执行以下操作: 编辑:感谢HATCHA和jpsetung的编辑建议。

  • 问题内容: 我想从一组单选按钮中获取选定的值。 这是我的HTML: 这是我的.js: 我一直不确定。 问题答案: rates元素是,因此它没有值。这可能是来自哪里。 该属性将告诉您是否选择了元素:

  • 我有一个图像视图和一个按钮,我想要什么,当我点击按钮我想旋转图像视图10度。请帮帮我。 下面是我使用的代码

  • 问题内容: 我想从一组单选按钮中获取选定的值。 这是我的HTML: 这是我的.js: 我一直不确定。 问题答案: var rates = document.getElementById(‘rates’).value; rates元素是,因此它没有值。这可能是来自哪里。 该属性将告诉您是否选择了元素:

  • 问题内容: 我有两个单选按钮和。 如何获取所选单选按钮的值。 我是否需要使用ng-model或其他东西。在jquery中,我知道Angularjs中没有的东西。 问题答案: 双方应该有相同与不同 (意味着有选择使用S或按钮),使所选择的值将在修改$ scope变量,你可以抓住的形式的控制器内部的值或者提交按钮点击。 标记