-1

当片段启动时,这会崩溃。它可能在单选按钮代码中吗?

    RadioGroup q1;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        q1 = (RadioGroup) getView().findViewById(R.id.radioGQ1);
        q1.setOnCheckedChangeListener(this);
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_exercise, container, false);

    }
    rest -> http://pastebin.com/cRptSmD4
4

2 回答 2

3

您需要先膨胀视图。

View root = inflater.inflate(R.layout.fragment_exercise, container, false);
q1 = (RadioGroup) root.findViewById(R.id.radioGQ1);
q1.setOnCheckedChangeListener(this);
return root;

getView()返回 null 直到您从 中返回视图层次结构onCreateView(),因此您不应该getView()在该方法内调用。

于 2017-01-13T01:00:39.783 回答
0

ContextofFragment是,getActivity如果您没有初始化任何视图,请使用getActivity(). 所以在你的代码中:

替换这个:

q1 = (RadioGroup) getView().findViewById(R.id.radioGQ1);

使用此代码:

q1 = (RadioGroup) getActivity().findViewById(R.id.radioGQ1);
于 2017-01-13T05:30:22.307 回答