Я настраиваю пользовательский спиннер с надписью «Текст и флажок» с помощью специального адаптера.Как установить флажок, который уже выбран пользователем?при нажатии на флажок значения отображаются корректно.
Я устанавливаю выбранный флажок из класса модели, но он не проверяется. Это правда, и класс модели объекта имеет значение только "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 ==>");
}
}