使用 setText onCreate 将日期添加到 EditText

Add date to EditText with setText onCreate

所以我一直在尝试让它以两种不同的方式工作。

第一个是这个:

EditText dod = (EditText)findViewById(R.id.dod); 

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String currentDateandTime = sdf.format(new Date());
dod.setText(currentDateandTime);

我遇到错误:

Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference

第二种解决方法是:

    int mYear,mMonth,mDay;

    Calendar c = Calendar.getInstance(Locale.getDefault());
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);

    dod.setText(new StringBuilder().append(mDay).append("-").append(mMonth+1).append("-").append(mYear));

这里出现同样的错误,这在 kikat 4.4 上有效,所以我没有发现问题,EditText 已声明。

无论您使用哪种方法设置文本,都会出错,因为您要么

  1. 您在 onCreate 中的 setContentView 之前有以下代码。

    EditText dod = (EditText)findViewById(R.id.dod); 
    
  2. R.id.dob 在您在 setConentView 中使用的布局内不可用。

那可能是因为你的静态对象还没有构建。

替换String currentDateandTime = sdf.format(new Date());

String currentDateandTime = new String(sdf.format(new Date()));

您遇到的错误很可能是因为您没有将 'dod' 的 ID 分配给 XML 布局文件中的 EditText