Фрагмент из носорога носа не работает?

Может ли кто-нибудь объяснить, почему мой элемент View (ListView) null имеет следующий код:

public class NewsFragment extends Fragment {

    @InjectView(R.id.news_listView) ListView lv;

    @Override
    public View onCreateView(LayoutInflater inflater, 
                             ViewGroup container, 
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.news_layout, container, false);
        ButterKnife.inject(this, view);
        return view;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        if (lv == null) {
            UIHelper.showAlert("null?");
        }
    }
}

Я делаю что-то неправильно или что-то не так с библиотекой, потому что я вставлял пример кода в свое приложение, чтобы заставить его работать, но он не работает здесь... Любая помощь очень ценится!

Ответ 1

Установили ли вы свою среду IDE?

КОНФИГУРАЦИЯ IDE

Некоторые IDE требуют дополнительной настройки, чтобы включить обработка аннотаций.

IntelliJ IDEA - если ваш проект использует внешнюю конфигурацию (например, Maven pom.xml), то обработка аннотаций должна просто работать. Если не, попробуйте выполнить ручную настройку.

Eclipse - настройка ручной настройки

Обычно это означает, что обработчик аннотации не выполнял свою работу. Это может быть связано с неправильной конфигурацией или случайными проблемами с IDE. По моему опыту, время от времени мне приходилось чистить проект и все снова создавать.

Ответ 2

Эта работа для меня:

...

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home, container, false);
    ButterKnife.bind(this, view);
    return view;
}  

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
...