在DialogFragments,android中的空指针异常

时间:2012-07-15 12:31:09

标签: java android dialog onclick nullpointerexception

以下是我的代码片段:

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);”处找到空指针异常,我能让它工作的唯一方法是注释掉你看到的所有注释掉的部分。

  • 是否有一些我不知道的规则我不能在对话片段中设置我的onclick听众等?
  • 解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

onActivityCreated()初始化您的观看次数。来自文档:

  

在创建片段的活动时调用和此   片段的视图层次结构实例化。它可以用来做最后的   这些部分就位后进行初始化,例如检索   视图或恢复状态。它对使用的片段也很有用   setRetainInstance(boolean)保留它们的实例,就像这个回调一样   告诉片段何时与新活动完全关联   实例。这是在onCreateView(LayoutInflater,ViewGroup,   Bundle)和onStart()之前。

比你可以致电getView().findViewById(R.id.np);

或在np = (NumberPicker) view.findViewById(R.id.np);中使用onCreateView(),请注意“视图。