У меня есть активность с настраиваемое представление в его файле макета Xml: Установка адаптера на Listview в настраиваемое представление вводили нож для масла
<com.example.androidmontreal.mvp.infrastructure.views.AndroidRaceResultsView
android:id="@+id/raceResults"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
...
В OnCreate метод этой деятельности I используйте Butterknife, чтобы ввести мои взгляды:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mvp_main);
ButterKnife.inject(this);
...
}
В моем обычном представлении у меня есть listview. Перед добавлением ножа для масла я использовал, чтобы установить адаптер для ListView в методе onFinishInflate
:
@Override
protected void onFinishInflate() {
super.onFinishInflate();
...
listView.setAdapter(resultsAdapter);
}
С добавлением ножа для масла, однако, я получаю NPE на линии, где я установить адаптер, потому что на этом этапе ListView является нулем.
Я понимаю, что представление создается только при вызове метода Butterknife.inject()
в Activity, но это происходит после того, как представление было завышено. Я не могу понять, когда я должен установить адаптер для listView.
Редактировать: Похоже, что представления детей на моем обычном представлении равны нулю, даже после того, как было вызвано utterknife.inject()
. Если добавить вызов Butterknife.inject
к моему onFinishInflate
метод, однако, я получаю ошибку о том, что java.lang.IllegalStateException: Required view with id '2131034112' for field 'listView' was not found
Инъекционный вызов включен в мою активность, у которого нет доступа к полю listView на моем пользовательском представлении. Добавление запроса Inject к моему пользовательскому представлению вводит новую ошибку (см. Редактирование в вопросе) – DanielO
ok, тогда вы лучше посмотрите https://github.com/mmBs/NavigationDrawerSI/blob/master/app/src /main/java/mmbialas/pl/navigationdrawersi/ui/navigationdrawer/NavigationDrawerView.java – avgx
Вы должны проверить, что вы ввели свой пользовательский вид в действие, как в предыдущей ссылке, посмотрите, как NavigationDrawerView доступен в MainActivity – avgx