#android
#Android
Вопрос:
Я пытаюсь добавить динамический флажок в свою активность. Однако, будучи новичком, я не могу разобраться с основами добавления флажков и их удаления. Вот мой код….
private void createCheckbox() {
for(int i=0; i<5; i ){
cb = new CheckBox(this);
ll.addView(cb);
cb.setText("Test");
}
ll.addView(submit);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i = 0; i < 5; i ) {
ll.removeView(cb);
}
ll.removeView(submit);
Questions();
}});
}
ll — это объект linerlayout. Идея заключается в том, что при запуске кода появляются 5 флажков, а затем, как только пользователь нажимает на кнопку отправки, они удаляются. В настоящее время флажки видны, но при нажатии кнопки отправки удаляется только один из пяти. Я не понимаю, что я делаю не так?
Идея заключается в том, что флажки будут создаваться в зависимости от значения в базе данных, и это значение может измениться, поэтому флажки не являются предопределенными, поскольку их может быть 4, 5 или 15. Я не знаю, как сделать так, чтобы у каждого флажка был свой собственный идентификатор, потому что после этой проблемы мне нужно будет идентифицировать их по отдельности, потому что мне нужно будет добавить к ним текст из базы данных, а затем, как только пользователь проверит несколько кнопок, мне нужно будет сохранить это в отдельной таблице. Очень запутался!!! помогите!
Ответ №1:
Вам нужно где-то сохранить ссылки на эти флажки, но не использовать одну и ту же переменную повторно.
CheckBox[] cbs = new CheckBox[5];
for(int i=0; i<5; i ){
cbs[i] = new CheckBox(this);
ll.addView(cb);
cbs.setText("Test");
}
ll.addView(submit);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i = 0; i < 5; i ) {
ll.removeView(cbs[i]);
}
ll.removeView(submit);
Questions();
}});
Комментарии:
1. Отлично, вы спасаете жизнь! я потратил часы, пытаясь решить эту проблему