为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的程序每次点击进去日期都是显示1900年,然后点击一下才会获取正确的日期

package com.immoc.test9;

import java.util.Calendar;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker;
import android.os.Build;
import android.os.storage.OnObbStateChangeListener;

public class MainActivity extends Activity {
    
    private TimePicker timePicker;
    private DatePicker datePicker;
    private Calendar cal;
    private int year;
    private int month;
    private int day;
    private int hour;
    private int minute;
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //获取日历的一个对象
        cal = Calendar.getInstance();
        //获取年月日时分秒的信息
        cal.get(Calendar.YEAR);
        month = cal.get(Calendar.MONTH)+1;
        day = cal.get(Calendar.DAY_OF_MONTH);
        hour = cal.get(Calendar.HOUR_OF_DAY);
        minute = cal.get(Calendar.MINUTE);
        
        setTitle(year + "-" + month + "-" + day + "-" + hour + "-" + minute);
        
        datePicker = (DatePicker) findViewById(R.id.datePicker);
        timePicker = (TimePicker) findViewById(R.id.timePicker);
        
        //datepicker初始化
        datePicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {
            
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                // TODO Auto-generated method stub
                setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
            }
        });
    }
}

http://img1.sycdn.imooc.com//566f7eee0001a32404500812.jpg

正在回答

2 回答

找到原因了,获取年月日时分秒信息的时候,前面少写一个year = ,应该写成year = cal.get(Calendar.YEAR);

1 回复 有任何疑惑可以回复我~

可能跟ide工具自身有关吧,需要先获取焦点后才更新本地时间

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第二门课(第1季)
  • 参与学习       111172    人
  • 解答问题       1457    个

本课程由浅入深地带您学会Android的常用控件的开发和使用

进入课程

为什么我的程序每次点击进去日期都是显示1900年,然后点击一下才会获取正确的日期

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信