2015-07-26 2 views
0

У меня есть экран с календарным просмотром, если в любой день в любой день пойдет новый экран с edittext для ввода даты и другими данными. Я хотел, чтобы дата, нажатая, появлялась в EditText (id = txtDate) .После вызова экрана, я пытался использовать пример Toast для ввода даты в EditText:Android - Вставить дату в Editext

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

Я изменен:

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

Это не сработало. То, что должно быть сделано?

Код:

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); 




       } 

      }); 

Код:

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 для @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 
+0

Дайте свой код. Возможно, у вас есть setText внутри runOnUiThread. – EliaszKubala

+0

Вы передаете данные в другую деятельность? – Siva

+0

Обновлен с кодом. – Matheus

ответ

0

Разработан метод EditText setText() можно увидеть here.

общественного недействительными SetText (CharSequence текст, тип TextView.BufferType)

Попробуйте это:

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

Edit:

Ваш LogCat показывает, что txtDate равно нулю, когда вы пытаетесь позвонить на него setText().

+0

Спасибо, но это не сработало. – Matheus

+0

@Matheus Какие результаты вы видите? Любые сообщения об ошибках? – pez

+0

Приложение остановлено, 07-26 13: 55: 45.682: E/AndroidRuntime (25287): java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.widget.EditText.setText (java.lang.CharSequence, android. widget.TextView $ BufferType) 'на ссылке нулевого объекта – Matheus

Смежные вопросы