Скрещивал два проекта (ActionBar Tabs и CustomizeListView). Вообщем Табы и на них лист.
Все было хорошо, но при запуске выдает NPE при присвоении адаптера, когда формируется список на Табе.
Пол-ночи сижу и никак. Вроде всё правильно. Нужна Ваша помощь.
Ошибка
0java.lang.NullPointerException at com.example.listwithpic.Tab1.onCreateView(Tab1.java:72) at android.support.v4.app.Fragment.performCreateView(Fragment.j ava:1500)
Код (на последней строке ошибка)
[syntax=java5]list = (ListView) getActivity().findViewById(R.id.list);
// Getting adapter by passing xml data ArrayList
adapter = new LazyAdapter(getActivity(), songsList);
list.setAdapter(adapter);[/syntax]
Изначально этот адаптер был на MainActivity, а сейчас отдельным классом для каждого таба.
Сначала подчеркивало красным на поиске листа (первая строка и на создании (вторая)). Я поставил там getActivity(). Перестало подчеркивать и ошибок больше нет. Но при запуске NPE. Может я тут что-то не так сделал ?
Пожалуйста, помогите решить проблему. Заранее спасибо. Может если мало инфы, говорите что нужно....
NPE на присвоении адаптера листу, при скрещивании двух проек
NPE на присвоении адаптера листу, при скрещивании двух проек
Тут должна быть подпись.
Re: NPE на присвоении адаптера листу, при скрещивании двух п
Не там ищете свой ListView. Судя по всему действия происходят в onCreateView фрагмента, значит нужно искать в том View которая эта функция возвращает.
что-то вроде:
[syntax=java] public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
list = (ListView) rootView.findViewById(R.id.list);
adapter = new LazyAdapter(getActivity(), songsList);
list.setAdapter(adapter);
return rootView;
}[/syntax]
где fragment_main.xml: layout содержащий ListView;
что-то вроде:
[syntax=java] public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
list = (ListView) rootView.findViewById(R.id.list);
adapter = new LazyAdapter(getActivity(), songsList);
list.setAdapter(adapter);
return rootView;
}[/syntax]
где fragment_main.xml: layout содержащий ListView;