android – RoboFragment中的InjectView

前端之家收集整理的这篇文章主要介绍了android – RoboFragment中的InjectView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从xml布局注入一些视图到RoboFragment但不幸的是我得到了Nullpointer异常.由于RoboGuice(除了是一个很好的DI框架)只有很少的文档,我不知道我是否可以使用@ContentView(R.layout.fragmentlayout)来注释我的RoboFragment.我应该做些什么呢?我现在做的是:
  1. public class TestFragment extends RoboFragment {
  2.  
  3. @InjectView(R.id.upBtn) private Button upBtn;
  4.  
  5. @Override
  6. public View onCreateView(LayoutInflater layoutInflater,ViewGroup container,Bundle savedInstanceState) {
  7.  
  8. super.onCreateView(layoutInflater,container,savedInstanceState);
  9. View view = layoutInflater.inflate(R.layout.fragmentlayout,false);
  10. RoboGuice.getInjector(getActivity()).injectMembers(this);
  11. upBtn.setSelected(false); // <------ Null pointer here
  12. return view;
  13. }
  14. }

解决方法

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

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

猜你在找的Android相关文章