Адаптер массива AutoCompleteTextView, смешивающий позиции и элементы - PullRequest
0 голосов
/ 30 мая 2020

У меня стандартное автозаполнение текста с обычным кастомным адаптером. Однако, как вы можете видеть на фотографии, android связывает часы с несколькими позициями (некоторые из них неверны). Если вы посмотрите, вы увидите, что адаптер правильно сузил его до двух вариантов. Однако у «ола» не должно быть часов, а у «полониса» - правильных часов. Возникает ошибка - часы на "ola" соответствуют часам "polonis", тогда как их не должно быть ни одного. Две информации, которые могут быть полезны:

Во-первых, я использовал несколько методов Log.d, и неправильные часы всегда связаны с другим notev2, чем тот, который присутствует в позиции. Во-вторых, если я добавлю одну строку текста, заполнив это текстовое представление адаптера точкой, проблемы исчезнут.

enter image description here

enter image description here

А это мой код адаптера в getView

@Override
    public View getView(int position, View view, @NonNull ViewGroup parent) {

        if (view == null) {
            view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.autocompletelayout, parent, false);
        }

        Notev2 notev2 = getItem(position);

        TextView titlePlace = (TextView) view.findViewById(R.id.autocomplete_title);
        titlePlace.setText(notev2.getTitle_v2());

        String slocation = "" + notev2.getLocation_v2();
        if (slocation.contains("zioiu"))
            slocation = "";
        TextView locationPlace = (TextView) view.findViewById(R.id.autocomplete_location);
        locationPlace.setText(slocation);

        TextView hoursPlace = (TextView) view.findViewById(R.id.autocomplete_openingHours);

        if (!day.equals("Hello")) {
            String[] openingHoursv2 = {notev2.getOpening_hours_1_v2(), notev2.getOpening_hours_2_v2(), notev2.getOpening_hours_3_v2()};
            List<String> allOpeningHours = new ArrayList<>(Arrays.asList(notev2.getOpening_hours_1_v2()
                    , notev2.getOpening_hours_2_v2(),
                    notev2.getOpening_hours_3_v2()));
            for (String openingHours : openingHoursv2) {
                if (!openingHours.equals("")) {
                    Log.d("NoNoteAdapter", openingHours + notev2.getTitle_v2() + "  " + position);
                    if (getBelongs(day, openingHours)) {
                        String toAppend = getClockPart(openingHours);
                        if (getOpenVsClosed(toAppend)) hoursPlace.setTextColor(Color.parseColor("#12D529"));
                        else hoursPlace.setTextColor(Color.parseColor("#D80E0E"));
                        hoursPlace.append(toAppend);
                    }
                } else { #if the dotted version
                    hoursPlace.append(.); 
                }
            }
        }


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