12

谁能解释为什么我的 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?");
        }
    }
}

我做错了什么还是图书馆有问题,因为我将示例代码粘贴到我的应用程序以使其正常工作,但它在这里不起作用......非常感谢任何帮助!

4

2 回答 2

12

你设置好你的IDE了吗?

IDE配置

一些 IDE 需要额外的配置才能启用注释处理。

IntelliJ IDEA — 如果您的项目使用外部配置(如 Maven pom.xml),那么注释处理应该可以正常工作。如果没有, 请尝试手动配置

Eclipse — 设置手动配置

通常这意味着注释处理器没有完成它的工作。这可能是由于 IDE 的配置错误或随机问题造成的。根据我的经验,我不得不时不时地清理项目并重新构建所有内容。

于 2013-12-14T19:26:39.623 回答
0

这对我有用:

...

@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);
...
于 2017-02-26T21:56:11.907 回答