Очень необычная ошибка "не может быть применена"

Для начала хочу сказать, что я новичок в программировании :). 2 дня назад в моем приложении произошла очень странная ошибка. В следующем действии моего приложения. Фрагмент моего кода, говорящий

FollowingActivity adapter = new FollowingActivity(mContext, R.layout.layout_followrow, mFollowing);
        mListView.setAdapter(adapter);

(mContext, R.layout.layout_followrow, mFollowing); подчеркнута и показывает ошибки. Один из них говорит: «FollowActivity в FollowActivity не может быть применен к». Затем отображаются параметры. Два из них в порядке, а последний (объекты) - нет. Ожидаемый параметр - FollowRow, а фактический аргумент - «mFollowing (java.util.ArrayList)». После этой строки «адаптер» также подчеркнут и говорит, что «setAdapter (android.widget.ListAdapter) в ListView не может быть применен к FollowActivity» Что мне следует делать в такой ситуации? Вот мой код:

Третий параметр вашего конструктора должен быть List<FollowingRow>. Вы пытаетесь передать mFollowing, то есть ArrayList<String>. Список строк - это не список FollowingRow.

khelwood 25.05.2018 11:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
1
56
1

Ответы 1

Третий параметр вашего конструктора FollowingActivity должен быть List<FollowingRow>. Вы пытаетесь передать mFollowing, то есть ArrayList<String>. Список строк - это не список FollowingRow.

Возможно, вы хотите преобразовать свой список строк в список FollowingRow. В Java 8 это можно сделать с помощью

List<FollowingRow> followingRows = mFollowing.stream()
            .map(FollowingRow::new)
            .collect(Collectors.toList());

(Это использует ваш конструктор FollowingRow(String).)

До Java 8 вы можете преобразовать его с помощью явного цикла.

List<FollowingRow> followingRows = new ArrayList<FollowingRow>(mFollowing.size());
for (String str : mFollowing) {
    followingRows.add(new FollowingRow(str));
}

Затем передайте followingRows своему конструктору FollowingActivity.

Хорошо, но где именно я должен это добавить, потому что, похоже, это не помогло :(

Jeremiah Mason 25.05.2018 16:59

Что ж, первая строка проблемного кода больше не показывает ошибок, но во второй слово «адаптер» по-прежнему подчеркнуто красным цветом.

Jeremiah Mason 25.05.2018 17:45

Могу я получить ответ?

Jeremiah Mason 25.05.2018 21:16

Я разместил ответ на проблему в вашем вопросе. Я не могу решать новые проблемы в коде, которого не видел.

khelwood 25.05.2018 23:13

Другие вопросы по теме