android - 动态单选按钮在其中存储 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
}
});
}
解决方案
在这种情况下,您需要使用标签,首先在所有单选按钮中添加除法,例如:
radioButton.setTag(divid);
在提交时,你可以得到除以这个:
String divid=radioButton.getTag().toString();
确保在 getTag 之前执行 setTag,否则 getTag 将返回 null 并且您的应用程序将崩溃。