我有一個spinner
在我看來。根據微調值的位置,我創建了dynamic checkbox
,數據通過API
。現在當我改變微調值比我想要的:動態刪除視圖或覆蓋視圖Android
Hide previous checkbox
和create new OR override previous checkbox
與新的一個。
立即寫入我可以創建動態複選框,並且當我更改微調器值時,它將添加新的複選框和當前框。我不能hide/remove/override
他們。
這裏是我的代碼:
otherSchool.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
if (allSchoolClassesName.size() > 0) {
for (int j = 0; j < allSchoolClassesName.size(); j++) {
final CheckBox addonChechbox = new CheckBox(context);
addonChechbox.setText("");
dialog_checkboox_options_dynamic_school_class.removeView(addonChechbox);
addonChechbox.setText(allSchoolClassesName.get(j));
addonChechbox.setId(j);
addonChechbox.setTextColor(context.getResources().getColor(R.color.White));
addonChechbox.setButtonDrawable(context.getResources().getDrawable(R.drawable.selector_checkbox));
addonChechbox.setPadding(0, 0, 0, 0);
addonChechbox.setTextColor(context.getResources().getColor(R.color.black));
addonChechbox.setTypeface(tf);
for (int groupIds = 0; groupIds < groupsArray.size(); groupIds++) {
if (allSchoolClassesId.get(j).equalsIgnoreCase(groupsArray.get(groupIds))) {
addonChechbox.setChecked(true);
addonChechbox.setButtonDrawable(context.getResources().getDrawable(R.drawable.selector_checkbox));
selectedGroupId.add(allSchoolClassesId.get(addonChechbox.getId()));
selectedGroupType.add("1");
}
}
dialog_checkboox_options_dynamic_school_class.addView(addonChechbox);
addonChechbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
selectedGroupId.add(allSchoolClassesId.get(addonChechbox.getId()));
selectedGroupType.add("1");
} else {
boolean findSelectedId = selectedGroupId.contains(allSchoolClassesId.get(addonChechbox.getId()));
if (findSelectedId) {
int indexSelectedId = selectedGroupId.indexOf(allSchoolClassesId.get(addonChechbox.getId()));
selectedGroupId.remove(indexSelectedId);
selectedGroupType.remove(indexSelectedId);
}
}
}
});
}
}
} else if (position > 0) {
if (schData.length() > 0) {
int i = 1;
int pos = position;
for (int k = 0; schData.length() > 0; k++) {
if (position == i) {
JSONObject achArray = schData.optJSONObject(k);
JSONArray grpList = achArray.optJSONArray("grpList");
for (int j = 0; j < grpList.length(); j++) {
final CheckBox addonChechbox = new CheckBox(context);
addonChechbox.setText("");
dialog_checkboox_options_dynamic_school_class.removeView(addonChechbox);
JSONObject classObj = grpList.optJSONObject(j);
String classes = classObj.optString("classes");
JSONObject jsonObjectId = classObj.optJSONObject(Constants.CONSTANT_id);
final String classGroupId = jsonObjectId.optString(Constants.CONSTANT_$id);
addonChechbox.setText("");
addonChechbox.setText(classes);
addonChechbox.setId(j);
addonChechbox.setTextColor(context.getResources().getColor(R.color.White));
addonChechbox.setButtonDrawable(context.getResources().getDrawable(R.drawable.selector_checkbox));
addonChechbox.setPadding(0, 0, 0, 0);
addonChechbox.setTextColor(context.getResources().getColor(R.color.black));
addonChechbox.setTypeface(tf);
for (int groupIds = 0; groupIds < groupsArray.size(); groupIds++) {
if (classGroupId.equalsIgnoreCase(groupsArray.get(groupIds))) {
addonChechbox.setChecked(true);
addonChechbox.setButtonDrawable(context.getResources().getDrawable(R.drawable.selector_checkbox));
selectedGroupId.add(classGroupId);
selectedGroupType.add("1");
}
}
dialog_checkboox_options_dynamic_school_class.removeView(addonChechbox);
dialog_checkboox_options_dynamic_school_class.addView(addonChechbox);
addonChechbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
selectedGroupId.add(classGroupId);
selectedGroupType.add("1");
} else {
boolean findSelectedId = selectedGroupId.contains(classGroupId);
if (findSelectedId) {
int indexSelectedId = selectedGroupId.indexOf(classGroupId);
selectedGroupId.remove(indexSelectedId);
selectedGroupType.remove(indexSelectedId);
}
}
}
});
}
break;
}
i++;
}
}
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
編輯和建議,歡迎選購。
你的'dialog_checkboox_options_dynamic_school_class'是什麼? – Kunu
而你的代碼不是很明白,所以更好的添加一些評論。 – Kunu
@Kunu它是一個'LinearLayout'。 – Vivek