【发布时间】:2023-04-03 07:05:01
【问题描述】:
我只是想从我在网上找到的许多 android datepicker 教程之一创建的 datepicker 对话框中获取日期。一旦选择了文本日期,我似乎在实际检索文本日期的某个地方出错了。我有一个 DatePickerFragment 类,它是从嵌套在我的 MainActivity 活动类中的 CreateEvent 片段中调用的。这是日期选择器:
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
private EditText txtDate;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
txtDate = (EditText)view.findViewById(R.id.txtDate);
txtDate.setText(day + " " + (month + 1) + " " + year);
}
}
当我实际尝试设置日期时,我得到了Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence) on a null object reference,我理解这意味着它实际上无法在我的创建事件片段 xml 文件中找到 edittext 元素。
我应该如何从onDateSet 设置这个edittext 元素的文本,还是我必须改变我的方法?
我试过this way但没有用。
【问题讨论】:
-
txtDate = (EditText)view.findViewById(R.id.txtDate);错了,datepicker中没有编辑文本,检查我的答案
-
对不起,我不明白。您是否尝试从 DatePicker 检索实际日期并将其显示在 EditText 中,还是要将其设置在 DatePicker 上?
-
在 EditText 中显示它
标签: java android android-fragments datepicker android-dialogfragment