以下是我的代码片段:
public class ChooseNumWorkoutsDialog extends DialogFragment implements OnClickListener {
Button btnClose, btnFinished;
NumberPicker np;
public ChooseNumWorkoutsDialog() {
// Empty constructor required for DialogFragment
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_numpicker, container);
getDialog().setTitle("Number of Exercises");
btnClose = (Button) findViewById(R.id.btnClose);
btnFinished = (Button) findViewById(R.id.btnFinished);
np = (NumberPicker) findViewById(R.id.np);
//np.setMaxValue(20);
//np.setMinValue(1);
//np.setWrapSelectorWheel(false);
//btnClose.setOnClickListener(this);
//btnFinished.setOnClickListener(this);
return view;
}
XML文件确实包含所有引用的按钮和numberPickers。运行此命令时,在“np.setMaxValue(20);”处找到空指针异常,我能让它工作的唯一方法是注释掉你看到的所有注释掉的部分。
答案 0 :(得分:4)
在onActivityCreated()初始化您的观看次数。来自文档:
在创建片段的活动时调用和此 片段的视图层次结构实例化。它可以用来做最后的 这些部分就位后进行初始化,例如检索 视图或恢复状态。它对使用的片段也很有用 setRetainInstance(boolean)保留它们的实例,就像这个回调一样 告诉片段何时与新活动完全关联 实例。这是在onCreateView(LayoutInflater,ViewGroup, Bundle)和onStart()之前。
比你可以致电getView().findViewById(R.id.np);
或在np = (NumberPicker) view.findViewById(R.id.np);
中使用onCreateView()
,请注意“视图。”