简体   繁体   中英

Android - Insert Date in Editext

I have a screen with calendar view, if clicked in any date will go for a new screen with edittext for date input and others data.I wanted that the date clicked will appearing in the EditText(id = txtDate).After call the screen,I tried to use the example of Toast for date input in Edittext :

Toast.makeText(getApplicationContext(),
                        day + "/" + month + "/" + year, Toast.LENGTH_LONG)
                        .show();

I changed by :

txtDate.setText(day + "/" + month + "/" + year);

It did not work. What should be done?

Code :

public class ScreenCalendar extends Activity {


    EditText txtDate;

    CalendarView calendar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen_calendar);

        txtDate = (EditText) findViewById(R.id.txtDate);

        // initializes the calendarview

        initializeCalendar();

    }

    @SuppressLint("NewApi")
    public void initializeCalendar() {

        calendar = (CalendarView) findViewById(R.id.calendar);

        // sets whether to show the week number.

        calendar.setShowWeekNumber(false);

        // sets the first day of week according to Calendar.

        // here we set Monday as the first day of the Calendar

        calendar.setFirstDayOfWeek(2);

        // The background color for the selected week.

        calendar.setSelectedWeekBackgroundColor(getResources().getColor(
                R.color.green));

        // sets the color for the dates of an unfocused month.

        calendar.setUnfocusedMonthDateColor(getResources().getColor(
                R.color.transparent));

        // sets the color for the separator line between weeks.

        calendar.setWeekSeparatorLineColor(getResources().getColor(
                R.color.transparent));

        // sets the color for the vertical bar shown at the beginning and at the
        // end of the selected date.

        calendar.setSelectedDateVerticalBar(R.color.darkgreen);

        // sets the listener to be notified upon selected date change.

        calendar.setOnDateChangeListener(new OnDateChangeListener() {

            // show the selected date as a toast


    @Override
                public void onSelectedDayChange(CalendarView view, int year,
                        int month, int day) {

                    startActivity(new Intent(getBaseContext(), Event.class));


                    /*Toast.makeText(getApplicationContext(),
                            day + "/" + month + "/" + year, Toast.LENGTH_LONG)
                            .show();*/

             txtDate.setText(day + "/" + month + "/" + year);




                }

            });

Code:

public class Event extends Activity implements OnClickListener {


    EditText txtDate, txtTime;

    // Variable for storing current date and time
    private int mYear, mMonth, mDay, mHour, mMinute;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.event);




        txtDate = (EditText) findViewById(R.id.txtDate);
        txtTime = (EditText) findViewById(R.id.txtTime);

        txtDate.setOnClickListener(this);
        txtTime.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        if (v == txtDate) {

            // Process to get Current Date
            final Calendar c = Calendar.getInstance();
            mYear = c.get(Calendar.YEAR);
            mMonth = c.get(Calendar.MONTH);
            mDay = c.get(Calendar.DAY_OF_MONTH);

            // Launch Date Picker Dialog
            DatePickerDialog dpd = new DatePickerDialog(this,
                    new DatePickerDialog.OnDateSetListener() {

                        @Override
                        public void onDateSet(DatePicker view, int year,
                                int monthOfYear, int dayOfMonth) {
                            txtDate.setText(dayOfMonth + "-"
                                    + (monthOfYear + 1) + "-" + year);

                        }
                    }, mYear, mMonth, mDay);
            dpd.show();

        }
        if (v == txtTime) {

            // Process to get Current Time
            final Calendar c = Calendar.getInstance();
            mHour = c.get(Calendar.HOUR_OF_DAY);
            mMinute = c.get(Calendar.MINUTE);

            // Launch Time Picker Dialog
            TimePickerDialog tpd = new TimePickerDialog(this,
                    new TimePickerDialog.OnTimeSetListener() {

                        @Override
                        public void onTimeSet(TimePicker view, int hourOfDay,
                                int minute) {
                            // Display Selected time in textbox
                            txtTime.setText(hourOfDay + ":" + minute);
                        }
                    }, mHour, mMinute, false);
            tpd.show();

        }
    }
}

LogCat for @pez

07-26 13:55:42.312: V/RenderScript(25287): 0xb4820e00 Launching thread(s), CPUs 2
07-26 13:55:45.676: E/InputEventReceiver(25287): Exception dispatching input event.
07-26 13:55:45.676: E/MessageQueue-JNI(25287): Exception in MessageQueue callback: handleReceiveCallback
07-26 13:55:45.679: E/MessageQueue-JNI(25287): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence, android.widget.TextView$BufferType)' on a null object reference
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at br.info.agendamain.ScreenCalendar$1.onSelectedDayChange(ScreenCalendar.java:94)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.widget.CalendarViewLegacyDelegate$1.onChanged(CalendarViewLegacyDelegate.java:680)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.setSelectedDay(CalendarViewLegacyDelegate.java:1036)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.onDateTapped(CalendarViewLegacyDelegate.java:1121)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.onTouch(CalendarViewLegacyDelegate.java:1109)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.View.dispatchTouchEvent(View.java:8470)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.app.Activity.dispatchTouchEvent(Activity.java:2752)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.View.dispatchPointerEvent(View.java:8671)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4193)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4059)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3740)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3797)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5912)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5851)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5822)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6002)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.os.MessageQueue.nativePollOnce(Native Method)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.os.MessageQueue.next(MessageQueue.java:143)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.os.Looper.loop(Looper.java:122)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at android.app.ActivityThread.main(ActivityThread.java:5343)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at java.lang.reflect.Method.invoke(Native Method)
07-26 13:55:45.679: E/MessageQueue-JNI(25287):  at java.lang.reflect.Method.invoke(Method.jav
07-26 13:55:45.680: D/AndroidRuntime(25287): Shutting down VM
07-26 13:55:45.682: E/AndroidRuntime(25287): FATAL EXCEPTION: main
07-26 13:55:45.682: E/AndroidRuntime(25287): Process: br.info.agendamain, PID: 25287
07-26 13:55:45.682: E/AndroidRuntime(25287): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence, android.widget.TextView$BufferType)' on a null object reference
07-26 13:55:45.682: E/AndroidRuntime(25287):    at br.info.agendamain.ScreenCalendar$1.onSelectedDayChange(ScreenCalendar.java:94)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.widget.CalendarViewLegacyDelegate$1.onChanged(CalendarViewLegacyDelegate.java:680)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.setSelectedDay(CalendarViewLegacyDelegate.java:1036)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.onDateTapped(CalendarViewLegacyDelegate.java:1121)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.widget.CalendarViewLegacyDelegate$WeeksAdapter.onTouch(CalendarViewLegacyDelegate.java:1109)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.View.dispatchTouchEvent(View.java:8470)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2407)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.app.Activity.dispatchTouchEvent(Activity.java:2752)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.View.dispatchPointerEvent(View.java:8671)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4193)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4059)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3740)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3797)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3657)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3623)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3631)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3604)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5912)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5851)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5822)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6002)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.os.MessageQueue.nativePollOnce(Native Method)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.os.MessageQueue.next(MessageQueue.java:143)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.os.Looper.loop(Looper.java:122)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at android.app.ActivityThread.main(ActivityThread.java:5343)
07-26 13:55:45.682: E/AndroidRuntime(25287):    at java.lang.reflect.Method.invoke(N
07-26 13:55:47.962: I/Process(25287): Sending signal. PID: 25287 SIG: 9
07-26 13:55:48.348: D/OpenGLRenderer(25346): Use EGL_SWAP_BEHAVIOR_PRESERVED: true
07-26 13:55:48.354: D/Atlas(25346): Validating map...
07-26 13:55:48.415: I/Adreno-EGL(25346): <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LA.AF.1.1_RB1.05.00.02.006.020_msm8960_LA.AF.1.1_RB1__release_AU ()
07-26 13:55:48.415: I/Adreno-EGL(25346): OpenGL ES Shader Compiler Version: E031.25.03.06
07-26 13:55:48.415: I/Adreno-EGL(25346): Build Date: 03/30/15 Mon
07-26 13:55:48.415: I/Adreno-EGL(25346): Local Branch: mybranch8688311
07-26 13:55:48.415: I/Adreno-EGL(25346): Remote Branch: quic/LA.AF.1.1_rb1.16
07-26 13:55:48.415: I/Adreno-EGL(25346): Local Patches: NONE
07-26 13:55:48.415: I/Adreno-EGL(25346): Reconstruct Branch: AU_LINUX_ANDROID_LA.AF.1.1_RB1.05.00.02.006.020 + 9b2699f + 2215637 + 60aa592 + f2362e6 + 5c64f59 + 82411a1 + 1f36e07 +  NOTHING
07-26 13:55:48.416: I/OpenGLRenderer(25346): Initialized EGL, version 1.4
07-26 13:55:48.443: D/OpenGLRenderer(25346): Enabling debug mode 0

The setText() method of an EditText can be seen here .

public void setText (CharSequence text, TextView.BufferType type)

Try this:

txtDate.setText(day + "/" + month + "/" + year, TextView.BufferType.EDITABLE);

Edit:

Your logcat shows that txtDate is null when you try to call setText() on it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM