首页 > 解决方案 > 动态单选按钮在其中存储 json 响应 ID 和名称

问题描述

大家好,我在底部编写了一些可以完美运行的代码,但是我在其中使用了数组列表,但是如果用户选择任何按钮,我想要动态单选按钮,因此对于用户它应该显示名称,对我来说,我选择了 id 我的 json 响应就像分,divisionname 我必须在单选按钮中向用户显示部门名称,如果用户根据该选项选择任何单选,如果我们在一个单选按钮中同时传递 id 和名称,我想要划分任何东西,在提交按钮上我想要 Id

            ArrayList<String> divId = null;
            ArrayList<String> divName = null;
            RadioGroup divRadioGrouop;
            String divsionId=null;

            if (divisionCheck) {
                    RadioButton rdbDiv;
                    divId = new ArrayList<>();
                    divName = new ArrayList<>();
                    divisionLogin.setVisibility(View.VISIBLE);
                    divRadioGrouop.removeAllViews();
                    for (int j = 0; j < jsonArrayDiv.length(); j++) {
                        JSONObject jsonDiv = jsonArrayDiv.getJSONObject(j);
                        divId.add(jsonDiv.getString("divid"));
                        divName.add(jsonDiv.getString("divisionname"));
                        rdbDiv = new RadioButton(this);
                        rdbDiv.setId(View.generateViewId());
                        rdbDiv.setText(jsonDiv.getString("divisionname"));
                        divRadioGrouop.addView(rdbDiv);
                    }
                    divOk.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            int divid = divRadioGrouop.getCheckedRadioButtonId();
                            RadioButton radioButton = (RadioButton) findViewById(divid);

                            String divSionNameFind = (String) radioButton.getText();
                            int idPostionIndex = divName.indexOf(divSionNameFind);
                            divsionId = divId.get(idPostionIndex);
                            divName.clear();
                            divId.clear();

                            logINDataForDiv();

                        }
                    });
                    divCancel.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            // do something
                        }
                    });
                }

标签: android

解决方案


在这种情况下,您需要使用标签,首先在所有单选按钮中添加除法,例如:

radioButton.setTag(divid);

在提交时,你可以得到除以这个:

String divid=radioButton.getTag().toString();

确保在 getTag 之前执行 setTag,否则 getTag 将返回 null 并且您的应用程序将崩溃。


推荐阅读