Как это исправить, флажок не установлен, используя код в специальном адаптере для счетчика? - PullRequest
0 голосов
/ 10 июня 2019

Я настраиваю пользовательский спиннер с надписью «Текст и флажок» с помощью специального адаптера.Как установить флажок, который уже выбран пользователем?при нажатии на флажок значения отображаются корректно.

Я устанавливаю выбранный флажок из класса модели, но он не проверяется. Это правда, и класс модели объекта имеет значение только "True".Также я проверил, используя "setSelected" и "setChecked", но оба дают одинаковый вывод.

public View getCustomView(final int position, View convertView, ViewGroup parent) {

        final ViewHolder holder;
        if (convertView == null) {
            LayoutInflater layoutInflator = LayoutInflater.from(thisActivity);
            convertView = layoutInflator.inflate(R.layout.spinner_dropdown_with_checkbox, null);
            holder = new ViewHolder();
            holder.mTextView = (TextView) convertView.findViewById(R.id.text);
            holder.mCheckBox = (CheckBox) convertView.findViewById(R.id.checkbox);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }


        holder.mTextView.setText(listState.get(position).getTitle());

        // To check weather checked event fire from getview() or user input
        isFromView = true;


        //holder.mCheckBox.setChecked(listState.get(position).isSelected());
        isFromView = false;

        Logger.infoLog("adapter vehicleMovementSubEdit= =>" + vehicleMovementSubEdit);

        Logger.infoLog("enteredLaneIdList string ==>" + selectedReasonsList.toString());


        holder.mCheckBox.setVisibility(View.VISIBLE);

        holder.mCheckBox.setTag(position);


//        holder.mCheckBox.setChecked(listState.get(position).getChecked());

        Logger.infoLog("listState.get(position).getId() ==>" + listState.get(position).getId());
        Logger.infoLog("selectedReasonsList.contains(listState.get(position).getId()) ==>" + selectedReasonsList.contains(listState.get(position).getId()));

        if (selectedReasonsList.contains(listState.get(position).getId())) {

            listState.get(position).setSelected(true);

            Logger.infoLog("condition true ==>");

            if (listState.get(position).getChecked()) {
                Logger.infoLog("double condition true ==>");
                holder.mCheckBox.setChecked(listState.get(position).isSelected());

            }
        }else{
            Logger.infoLog("condition false ==>");
        }
}

1 Ответ

0 голосов
/ 10 июня 2019

Если они отмечены, но не показывают это визуально, вам, возможно, придется их ткнуть.

View v = getView();

if (v != null)
{
    v.jumpDrawablesToCurrentState();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...