gpt4 book ai didi

android - 在 RoboFragment 中注入(inject) View

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:57 25 4
gpt4 key购买 nike

我想将 xml 布局中的一些 View 注入(inject) 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, container, 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);
}

如果您坚持手动注入(inject),请使用injectViewMembers()。如果您可以将触摸 View 延迟到 onViewCreated() 之后,那么它将为您设置。

关于android - 在 RoboFragment 中注入(inject) View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14210526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com