java.lang.nullpointerexception ondateset

ff29svar  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(534)

谁能帮我解释一下为什么我会得到这个例外!!!

  1. 01-15 00:15:51.380 24298-24298/creotive.walleta3 E/AndroidRuntime FATAL EXCEPTION: main
  2. java.lang.NullPointerException
  3. at creotive.walleta3.Reminder$5.onDateSet(Reminder.java:290)
  4. at android.app.DatePickerDialog.tryNotifyDateSet(DatePickerDialog.java:199)
  5. at android.app.DatePickerDialog.onClick(DatePickerDialog.java:154)
  6. at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:185)
  7. at android.os.Handler.dispatchMessage(Handler.java:99)
  8. at android.os.Looper.loop(Looper.java:137)
  9. at android.app.ActivityThread.main(ActivityThread.java:5306)
  10. at java.lang.reflect.Method.invokeNative(Native Method)
  11. at java.lang.reflect.Method.invoke(Method.java:511)
  12. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
  13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
  14. at dalvik.system.NativeStart.main(Native Method)

我的代码如下:

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.reminder_layout);
  4. editDate=(EditText)findViewById(R.id.edt_date);
  5. setReminderButt = (Button) findViewById(R.id.setReminderButt);
  6. setReminderButt.setOnClickListener(new View.OnClickListener() {
  7. @Override
  8. public void onClick(View v) {
  9. dialog = new Dialog(Reminder.this);
  10. dialog.setContentView(R.layout.activity_dialog1);
  11. dialog.setTitle("Reminder Alarm");
  12. editTime=(EditText)findViewById(R.id.edt_time);
  13. setButton=(Button)dialog.findViewById(R.id.btn_set);
  14. date=(Button)dialog.findViewById(R.id.date_picker);
  15. time=(Button)dialog.findViewById(R.id.time_picker);
  16. date.setOnClickListener(new View.OnClickListener() {
  17. @Override
  18. public void onClick(View v) {
  19. Toast.makeText(Reminder.this, "Reagon", Toast.LENGTH_SHORT).show();
  20. final Calendar c = Calendar.getInstance();
  21. myYear = c.get(Calendar.YEAR);
  22. myMonth = c.get(Calendar.MONTH);
  23. myDay = c.get(Calendar.DAY_OF_MONTH);
  24. showDialog(ID_DATEPICKER);
  25. }
  26. });
  27. time.setOnClickListener(new View.OnClickListener() {
  28. @Override
  29. public void onClick(View v) {
  30. final Calendar c = Calendar.getInstance();
  31. myHour = c.get(Calendar.HOUR_OF_DAY);
  32. myMinute = c.get(Calendar.MINUTE);
  33. showDialog(ID_TIMEPICKER);
  34. }
  35. });
  36. setButton.setOnClickListener(new View.OnClickListener() {
  37. @Override
  38. public void onClick(View v) {
  39. requestCode=(int)System.currentTimeMillis();
  40. try{
  41. msg=editMessage.getText().toString();
  42. }catch (Exception e) {
  43. msg="";
  44. }
  45. dateTime=dateStr.trim()+" "+timeStr.trim();
  46. try {
  47. SimpleDateFormat formatter = new SimpleDateFormat( "dd-MM-yyyy HH:mm" );
  48. setDate=(Date)formatter.parse(dateTime);
  49. } catch (ParseException e){
  50. }
  51. al=new Alarm();
  52. al.SetAlarm(Reminder.this, msg, requestCode, setDate, dateTime);
  53. Toast.makeText(getApplicationContext(), "Alarm has set", Toast.LENGTH_LONG).show();
  54. }
  55. });
  56. dialog.show();
  57. }
  58. });
  59. }
  60. @Override
  61. protected Dialog onCreateDialog(int id) {
  62. // TODO Auto-generated method stub
  63. switch(id){
  64. case ID_DATEPICKER:
  65. return new DatePickerDialog(this,
  66. myDateSetListener,
  67. myYear, myMonth, myDay);
  68. case ID_TIMEPICKER:
  69. return new TimePickerDialog(this,
  70. myTimeSetListener,
  71. myHour, myMinute, false);
  72. default:
  73. return null;
  74. }
  75. }
  76. private DatePickerDialog.OnDateSetListener myDateSetListener
  77. = new DatePickerDialog.OnDateSetListener(){
  78. @Override
  79. public void onDateSet(DatePicker view, int year,
  80. int monthOfYear, int dayOfMonth) {
  81. dateStr=String.valueOf(dayOfMonth)+"-"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(year);
  82. editDate.setText(dateStr);
  83. }
  84. };
  85. private TimePickerDialog.OnTimeSetListener myTimeSetListener
  86. = new TimePickerDialog.OnTimeSetListener(){
  87. @Override
  88. public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
  89. timeStr=String.valueOf(hourOfDay)+":"+String.valueOf(minute);
  90. editTime.setText(timeStr);
  91. }
  92. };

场景是这样的:我有一个按钮setreminder,当我点击它时,它会显示一个对话框,可以设置提醒的时间和日期。这个对话框还有两个按钮settime和setdate,单击它们就会抛出这种异常。idk发生了什么事!!!
p、 s——提醒。java:290 is 这行代码:editdate.settext(datestr);

oxf4rvwz

oxf4rvwz1#

这条线在这里

  1. editTime=(EditText)findViewById(R.id.edt_time);

告诉它看看你的布局 setContentView() 当你真的需要查看 Dialog 把它改成

  1. editTime=(EditText) dialog.findViewById(R.id.edt_time);

相关问题