【发布时间】:2017-10-19 23:21:13
【问题描述】:
我的应用中有一个 Activity,我希望用户从 DatePicker 中选择日期,该 DatePicker 包含在 AlertDialog 中。在 AlertDialog 中,我将视图设置为 xml 布局文件(其中仅包含一个 LinearLayout,带有一个 DatePicker。
代码很简单,看起来像这样,就在onCreate()下面。
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setView(R.layout.activity_alertdialog_date);
DatePicker datePicker = (DatePicker) findViewById(R.id.Activity_AlertDialog_SetStartDate);
// ... The rest of the AlertDialog, with buttons and all that stuff
alert.create().show()
布局显示在 AlertDialog 中,该部分效果很好。 但是,当我尝试添加这一行时,我得到一个空对象引用错误。
datePicker.setMinDate(System.currentTimeMillis() - 1000);
这是错误消息。
尝试调用虚方法'void android.widget.DatePicker.setMinDate(long)' 在空对象引用上
我该如何解决这个问题,或者以其他方式改进我的代码? 我非常感谢我能得到的所有帮助。谢谢!
【问题讨论】:
-
你想在哪里使用这条线
datePicker.setMinDate(System.currentTimeMillis() - 1000);?datePicker是否在范围内? -
这是下一行。这一切都在我在 onCreate() 结束时调用的方法中。所以我在 setContentView(...) 下面的行中调用该方法
-
问题的旁注:您可以链接您的 AlertDialog.Builder 调用,即
AlertDialog.Builder(this).setView(R.layout.my_layout).setButtonPositive(R.string.sweet_text).create().show()以使您的代码更具可读性。
标签: java android android-studio datepicker android-alertdialog