安卓日期选择器显示随机日期

3
使用 Datapicker.update(year,month,day); 来设置日期选择器,即使日期是正确的,也会给我一个随机的日期,所以请帮忙解决问题。我在添加或编辑任务时使用相同的 Activity。
下面是我的代码:
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add);
    databaseConnector = new DatabaseConnector(this);
    title = (EditText) findViewById(R.id.TitleET);
    subject = (EditText) findViewById(R.id.SubjectET);
    category = (Spinner) findViewById(R.id.CategorySpinner);
    datePicker = (DatePicker) findViewById(R.id.datePicker);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Category, android.R.layout.simple_spinner_item);
    category.setAdapter(adapter);
     extra = getIntent().getExtras();
    if(extra !=null)
    {
        String [] spli = extra.getString("Date").split("-");
        row_id = extra.getLong("row_id");
        title.setText(extra.getString("Title"));
        subject.setText(extra.getString("Subject"));
        if(extra.getString("Category").equals("Exam"))
        {
            category.setSelection(0);
        }
        else
        {
            category.setSelection(1);
        }
        datePicker.updateDate(Integer.parseInt(spli[2]),Integer.parseInt(spli[1]),Integer.parseInt(spli[0]));
    }
}
2个回答

1

我不确定这是否是正确的方法,但我编辑了这行代码,它可以正常工作

datePicker.updateDate(Integer.parseInt(spli[2]),Integer.parseInt(spli[1]),Integer.parseInt(spli[0]));
    }

改为:

改为

 datePicker.updateDate(Integer.parseInt(spli[2]),Integer.parseInt(spli[1])-1,Integer.parseInt(spli[0]));

我不知道它背后的逻辑,但它有效。


0

DatePicker.updateDate()的月份参数从零开始。根据文档

month 月份,从零开始计算

因此,作为第二个参数,请使用Integer.parseInt(spli[1]) - 1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接