代码之家  ›  专栏  ›  技术社区  ›  Karan Saxena

如何在Android中从日历中提取日期?

  •  1
  • Karan Saxena  · 技术社区  · 8 年前

    我正在尝试在 Android 。我已添加日历 widget 现在我想要的是,每当用户单击addevent按钮时,它都会转到一个新的 Activity 屏幕和用户在上一个日历中选择的日期 活动 精确复制到文本字段。有人能帮我写这个代码吗?
    附言-我加了两个 Fragments 在主屏幕上,一个用于日历,另一个用于 Buttons .

    提前谢谢。

    2 回复  |  直到 8 年前
        1
  •  3
  •   dumb_terminal    8 年前

    如果你的意思是 DatePicker 然后,通过注册日期选择侦听器,您就可以获得选定的日期

    datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
    
        @Override
        public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
                        Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
    
                    }
                });
    

    或通过以下方式随时获得所选日期:

     DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
     int day = datePicker.getDayOfMonth();
     int month = datePicker.getMonth() + 1;
     int year = datePicker.getYear();
    

    或者如果您正在使用 CalendarView 然后是一个简单的 getDate() 打电话就行了。现在从中提取日期、月份、年份,并通过将其传递给下一个活动 Intent

    如果您正在使用其他东西,请告诉我们。

        2
  •  2
  •   Ashish Tiwari    8 年前
    // Declaration
    
     private int mDay;
     private int mMonth;
     private int mYear;
    
    
    // Creating click listener of button
    
    button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    
         // Getting values from DatePicker
    
         DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
         mDay = datePicker.getDayOfMonth();
         mMonth = datePicker.getMonth() + 1;
         mYear = datePicker.getYear();
    
        // Here you have to write the code to start new Activity
        // If your second activity name is "SecondActivity" then use below code
    
        Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    
        // Put the date values to the intent
        intent.putExtra("Day",mDay);
        intent.putExtra("Month",mMonth);
        intent.putExtra("Year",mYear);
    
        startActivity(intent);
    
    }
    });
    

    以秒为单位 Activity

    int day;
    int month;
    int year;
    
    EditText dateEditText;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    
        dateEditText = (EditText)findViewById(R.id.dateEditText);
    
        Intent intent = getIntent();
    
        if(intent != null){
             day = intent.getIntExtra("Day",0);
             month = intent.getIntExtra("Month",0);
             year = intent.getIntExtra("Year",0);
    
             Calendar calendar = Calendar.getInstance();
             calendar.set(2013,5,23);
    
    
             SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' h:mm a");
            dateEditText.setText(format.format(calendar.getTime()));
    
        }
    
    }
    

    编辑

    // If you are using Calendar View
    
    calendarView.setOnDateChangeListener(new OnDateChangeListener() {
    
    @Override
    public void onSelectedDayChange(CalendarView arg0, int year, int month,
        int date) {
    
         mDay = date;
         mYear = year;
         mMonth = month;
         // Now you can uses year, month date to sent 
    }
    

    });

     // Click Listener of Button in case of CalenderView
    
    button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    
        // Here you have to write the code to start new Activity
        // If your second activity name is "SecondActivity" then use below code
    
        Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
    
        // Put the date values to the intent
        intent.putExtra("Day",mDay);
        intent.putExtra("Month",mMonth);
        intent.putExtra("Year",mYear);
    
        startActivity(intent);
    
    }
    });