NPE при отработке выбора элемента списка

139
19 августа 2018, 00:50

Учусь работать с DrawerLayout. Для обработки выбора элемента списка создал класс DrawerItemClickListener наследующий от ListView.OnItemClickListener. Вот его код.

private class DrawerItemClickListener implements ListView.OnItemClickListener{
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id){
        selectItem(position);
        setActionBarTitle(position);//28 строка
    }
};
private void selectItem(int position){
    ...
}
private void setActionBarTitle(int position){
    String title;
    if(position ==0){
        title = getResources().getString(R.string.app_name);
    } else{
        title = titles[position];
    }
    getActionBar().setTitle(title);//59 строка
}

Присваиваю слушателя в onCreate

ListView drawerList = (ListView)findViewById(R.id.drawer);
    drawerList.setOnItemClickListener(new DrawerItemClickListener());

И при выборе элемента вылетает следующая ошибка

java.lang.NullPointerException 
at com.hfad.bitsandpizzas.MainActivity.setActionBarTitle(MainActivity.java:59)
at com.hfad.bitsandpizzas.MainActivity.access$100(MainActivity.java:19)
at com.hfad.bitsandpizzas.MainActivity$DrawerItemClickListener.onItemClick(MainActivity.java:28)

19 строчка

public class MainActivity extends AppCompatActivity{

В чём здесь недочёт?

Answer 1

Лучше откажитесь от затеи использовать ActionBar(SupportActionBar), замените его на обычный layout и добавляйте в него все необходимые элементы. P.S. С версией api actionBar может меняться, из-за чего Ваша верстка может полететь(в лучшем случае), а layout'ы никаких серьезных изменений не приобретут

READ ALSO
Телеграмм и библиотеки

Телеграмм и библиотеки

Я не понимаю разницы между TDLib и TelegramAPIЯ работаю с Java и мне удалось найти реализации: для TDLib и для TlgrmAPI

134
Как отследить нажатие на иконку поиска search view?

Как отследить нажатие на иконку поиска search view?

Использую SearchView из библиотеки androidwidget:

138
Spring свойство

Spring свойство

Всем привет! Читал в какой-то книжке про Spring что есть некое свойство при установки которой не нужно всегда перезапускать проектТо есть ставим...

124
Как отправлять события с параметрами в Яндекс.Метрику?

Как отправлять события с параметрами в Яндекс.Метрику?

В Аппметрике можно отправлять события с параметрамиПотом можно развернуть событие и посмотреть статистику по каждому параметру

115