android – RoboFragment中的InjectView

我想从xml布局注入一些视图到RoboFragment但不幸的是我得到了Nullpointer异常.由于RoboGuice(除了是一个很好的DI框架)只有很少的文档,我不知道我是否可以使用@ContentView(R.layout.fragmentlayout)来注释我的RoboFragment.我应该做些什么呢?我现在做的是:
public class TestFragment extends RoboFragment {

    @InjectView(R.id.upBtn) private Button upBtn;   

    @Override
    public View onCreateView(LayoutInflater layoutInflater,ViewGroup container,Bundle savedInstanceState) {

        super.onCreateView(layoutInflater,container,savedInstanceState);
        View view = layoutInflater.inflate(R.layout.fragmentlayout,false);
        RoboGuice.getInjector(getActivity()).injectMembers(this);
        upBtn.setSelected(false);   // <------ Null pointer here
        return view;
    }
}

解决方法

如果你看一下RoboFragment的来源,你会看到
@Override
public void onViewCreated(View view,Bundle savedInstanceState) {
    super.onViewCreated(view,savedInstanceState);
    RoboGuice.getInjector(getActivity()).injectViewMembers(this);
}

如果您坚持手动注入,请使用injectViewMembers().如果你可以在onViewCreated()之后延迟触摸视图,那么它将为你设置.

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...