У меня есть программно создаваемые записи, это TextView
и его Checkbox
. Мне нужно изменить код, чтобы при определенных условиях удалить их вместе. Вот код их создания:
ArrayList<LinearLayout.LayoutParams> lParams_r = new ArrayList<LinearLayout.LayoutParams>();
int size_strok_r = 250;
int check_left_margin = 125;
fontW = 11;
lParams_r.add(0, new LinearLayout.LayoutParams(size_strok_r, wrapContent));
lParams_r.get(0).gravity = Gravity.LEFT;
ArrayList<LinearLayout.LayoutParams> lParams_check_r = new ArrayList<LinearLayout.LayoutParams>();
lParams_check_r.add(0, new LinearLayout.LayoutParams(size_strok, matchParent));
lParams_check_r.get(0).gravity = Gravity.RIGHT;
lParams_check_r.get(0).leftMargin = check_left_margin;
ArrayList<LinearLayout> LNew_r = new ArrayList<LinearLayout>();
LNew_r.add(0, new LinearLayout(this));
LNew_r.get(0).setPadding(0, 7, 0, 0);
if (first_schet_id == 0) first_schet_id = idbd;
ArrayList<TextView> KatNew_r = new ArrayList<TextView>();
KatNew_r.add(0, new TextView(this));
htmlTaggedString = "<u><b>" + str + "</b></u>";
textSpan = android.text.Html.fromHtml(htmlTaggedString);
KatNew_r.get(0).setMaxLines(1);
KatNew_r.get(0).setId(idbd + 98989);
KatNew_r.get(0).setTag(idbd + 98989);
KatNew_r.get(0).setText(textSpan);
KatNew_r.get(0).setTextSize(fontW);
KatNew_r.get(0).setPadding(20, 10, 0, 0);
KatNew_r.get(0).setTextColor(getResources().getColor(R.color.white_cl));
KatNew_r.get(0).setTypeface(typeFace);
LNew_r.get(0).addView(KatNew_r.get(0), lParams_r.get(0));
ArrayList<CheckBox> CheckNew_r = new ArrayList<CheckBox>();
CheckNew_r.add(0, new CheckBox(this));
CheckNew_r.get(0).setChecked(true);
CheckNew_r.get(0).setButtonDrawable(R.drawable.customcheckboxselector);
CheckNew_r.get(0).setId(idbd + 99999);
CheckNew_r.get(0).setTag(idbd);
LNew_r.get(0).addView(CheckNew_r.get(0), lParams_check_r.get(0));
ArrayList<LinearLayout.LayoutParams> lParamsRM = new ArrayList<LinearLayout.LayoutParams>();
lParamsRM.add(0, new LinearLayout.LayoutParams(wrapContent, wrapContent));
А вот как я пытаюсь провести удаление:
removeViewFrom(submenu_right, vibranniSCHET + 98989);
removeViewFrom(submenu_right, vibranniSCHET + 99999);
public void removeViewFrom(LinearLayout[] views, int id) {
for (LinearLayout l : views) {
l.removeView(findViewById(id));
}
}
Удаление не срабатывает, и я не знаю почему. Нужна помощь.
Чтобы произвести удаление View
, нужно сначала получить этот View
. Все элементы содержатся в двух ArrayList
для TextView
и для CheckBox
. Как я понимаю, vibranniSCHET
- это порядковый номер выбранного элемента. Чтобы он соответствовал номеру элемента в ArrayList
, добавляйте элементы в его конец, а не начало:
KatNew_r.add(new TextView(this));
CheckNew_r.add(new CheckBox(this));
Соответственно, мы можем просто по номеру элемента получить сам элемент.
Передавайте в метод для удаления один параметр: номер элемента, который нужно удалить. Списки с TextView
и CheckBox
можно хранить глобально. Вот метод для удаления TextView
и CheckBox
:
public void removeViewFrom(int position) {
TextView textView = KatNew_r.get(position);
textView.setVisibility(View.GONE);
KatNew_r.remove(position);
CheckBox checkBox = CheckNew_r.get(position);
checkBox.setVisibility(View.GONE);
CheckNew_r.remove(position);
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я создаю приложение аутентификации, у меня есть 3 методы, первый регистрирует юзера, второй получает client id and secret, а третий получает access and refresh...
Подскажите пожалуйстаЕсть ли или как-то можно реализовать систему ответа в websocket на входящее сообщение
Добрый деньПочему то при создании JAX-rs конфиги создаюмя в классе а не в xml файле как это исправить:?