0

我一直在按照本教程创建一个日期选择器,但是在设置 edit_text 的值时我一直有一个 nullpointerexception,这里是我的代码的一些部分:

// Update demo edittext when the "OK" button is clicked
            ((Button) mDateTimeDialogView.findViewById(R.id.SetDateTime))
                    .setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {
                            mDateTimePicker.clearFocus();
                            // TODO Auto-generated method stub
                            String result_string = mDateTimePicker.getMonth()
                                    + "/"
                                    + String.valueOf(mDateTimePicker.getDay())
                                    + "/"
                                    + String.valueOf(mDateTimePicker.getYear())
                                    + "  "
                                    + String.valueOf(mDateTimePicker.getHour())
                                    + ":"
                                    + String.valueOf(mDateTimePicker
                                            .getMinute());

                            edit_text.setText(result_string);
                            mDateTimeDialog.dismiss();
                        }

在这里我声明了 edit_text :

EditText edit_text ;

        static final int DATE_DIALOG_ID = 0;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            final View rootView = inflater.inflate(R.layout.newcase, container,
                    false);

            // final View formView = inflater.inflate(R.layout.mform,container,
            // false);

            final LinearLayout formbis = (LinearLayout) rootView
                    .findViewById(R.id.formbis);

            /*
             * 
             * ****************
             */
    EditText edit_text = (EditText) rootView.findViewById(R.id.edittext1);

            ....

但 edit_text 的初始化似乎“未使用”。

所有这些都在一个片段中。

4

2 回答 2

3

你正在初始化你的EditText错误。edit_text是一个实例变量。

从此行中删除 EditText:

EditText edit_text = (EditText) rootView.findViewById(R.id.edittext1);

所以它看起来像这样:

edit_text = (EditText) rootView.findViewById(R.id.edittext1);
于 2013-05-16T15:07:52.667 回答
1
EditText edit_text = (EditText) rootView.findViewById(R.id.edittext1);

在这里,您正在创建一个edit_text在方法范围内可见的局部变量onCreateView()。您需要将实例变量初始化EditText edit_text ;为:

edit_text = (EditText) rootView.findViewById(R.id.edittext1);

没有初始化它,默认情况下`EditText edit_text ;是一个null引用。

于 2013-05-16T15:08:39.927 回答