Как установить флажок внутри списка, чтобы прослушиватель находился вне активности адаптера? - PullRequest
0 голосов
/ 31 мая 2018

Итак, у меня есть пункты меню, отображаемые в listview вместе с checkboxes, чтобы пользователь мог выбрать, какой ему нравится.И у меня есть значок корзины, который отслеживает отсутствие отмеченных элементов, с помощью функции, которая записана в представлении адаптера.

My problem:

Когда я реализовал функцию увеличения корзины внутри OnItemClick listener,и затем, когда я проверяю несколько элементов, это doesn't get updated, если я не сделаю click outside of checkbox (где-либо еще в просмотре списка).

Я попытался отключить фокусируемость потомков и изменить фокусируемость согласно другим SO-ответам.Они не решили мою проблему.

Мои звонки

adapter = new MenuAdapter(CreateOrder.this,itemslist);
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                          selecteditems = adapter.getSelectedList();
                          Log.e("Selected Items",selecteditems.toString());
                          size = selecteditems.size();
                          qo.setText(String.valueOf(size));
                          Log.e("No of main items ",String.valueOf(size));


            }
        });

1 Ответ

0 голосов
/ 31 мая 2018

checkBoxState = new boolean [connectedList.size ()];

Это есть в getView ().Таким образом, для каждого вызова getView () вы отбрасываете первое.

В getView () вы используете checkBoxState [position], который тогда, конечно, не определен или равен нулю.

Так что выньте его, поместите в конструктор вашего адаптера и инициализируйте, как вы делаетес этим массивом int.

Кстати: почему вы не сказали, что ваши флажки не удерживали состояние во время прокрутки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...