有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法理解为什么我的EditText上会出现这个NullPointerException

我正在使用Android的DatePicker从日历中选择某个日期。问题是我无法在编辑文本中显示从日历中选择的日期

这将是我的DatePickerFragment

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

 private EditText a;
 private String date;

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

  a.findViewById(R.id.in_date);
  date = "";
  date = Integer.toString(day) + "/" + Integer.toString(month) + "/" + Integer.toString(year);
  a.setText(date);

  // Create a new instance of DatePickerDialog and return it
  return new DatePickerDialog(getActivity(), this, year, month, day);
 }
}

这是我正在使用的EditText的xml:

< EditText
安卓: id = "@+id/in_date"
安卓: layout_width = "175dp"
安卓: layout_height = "wrap_content"
安卓: hint = "@string/choose_date"
安卓: importantForAutofill = "no"
安卓: inputType = "date|text"
安卓: keyboardNavigationCluster = "false" / >

每次尝试对EditText变量a使用.setText(date)时,我都会得到NullPointerException。这不是应该初始化的方式吗


共 (1) 个答案

  1. # 1 楼答案

    您没有初始化变量a,这意味着它是null。你得到的是NullPointer,因为在后台,它在做(null).setText(date);

    EditText a = (EditText) findViewById(R.id.in_date);