При раздувании View
с LayoutInflater
вам необходимо передать родительский параметр, чтобы использовать атрибуты layout_*
. Это потому, что эти атрибуты должны создать правильный класс LayoutParams
. Это означает, что вы не можете использовать inflate(R.layout.*, null)
, но вместо этого должны передать ViewGroup
для второго параметра. В большинстве случаев вы также хотите использовать трехпараметрическую версию метода и передать false
в качестве третьего параметра. Если это опущено или true
, то View
сразу же добавляется к родительскому элементу, что вызывает проблемы в таких местах, как onCreateViewHolder()
, потому что инфраструктура предназначена для выполнения этой операции позже. Для получения дополнительной информации см. этот ответ .
В вашем случае у вас есть строка
View _v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_location,null );
Вы должны изменить ее на
View _v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_location, viewGroup, false );
Должен использовать главный комментарий, но также и обратить внимание на nextLine () . Для устранения этой ошибки только звонят
sc.nextLine()
Однажды из цикла с условием продолжения
while (sc.hasNextLine()) {sc.nextLine()...}
, который Вы используете в то время как для предусматривания только 1 строка. Тогда с помощью sc.nextLine () для чтения 2 строки перед одной строкой Вы попросили, чтобы цикл с условием продолжения смотрел вперед.
Также изменяют приблизительно [1 111] ЕСЛИ операторы к [1 112] ЕСЛИ, ЕЩЕ , чтобы не читать больше чем одну строку также.