2013-12-16 50 views
1

请帮助我从日历中获取日期。想法是用户必须选择日期。之后,日期又回到了主Actiity。 我试着这样做:如何从android日历中获取日期?

Calendar today = Calendar.getInstance(); 

Uri uriCalendar = Uri.parse("content://com.android.calendar/time/" + String.valueOf(today.getTimeInMillis())); 
Intent intentCalendar = new Intent(Intent.ACTION_DATE_CHANGED,uriCalendar);    
startActivity(intentCalendar); 

,但只打开日历,我不能选择日期。谢谢=)

+0

你有捕获用户选择的任何代码? – Houseman

+0

不可以。我可以做到吗? – user3085327

+0

看看这个: http://developer.android.com/guide/topics/ui/controls/pickers.html 这不是一个真正的日历,但你可以选择一个日期。此外,看到这一点:http://stackoverflow.com/questions/3712710/android-calendar-view-for-date-picker – Houseman

回答

1

我使用这个和它的作品对我来说 一个额外的小费,对于复杂的日期操作,我更喜欢约达时间在日历。我真的推荐它。

change_date_but = (Button) findViewById(R.id.c_change_button_id); 
    change_date_but.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // DatePickerDialog DPD = new DatePickerDialog(this, 
      // mDatesetlistener, mYear, mMonth, mDay); 
      DatePickerDialog DPD = new DatePickerDialog(
        AddEditChildren.this, mDateSetListener, mYear, mMonth, 
        mDay); 
       DPD.show(); 

     } 
    }); 

    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 
     mYear = year; 
     mMonth = monthOfYear; 
     mDay = dayOfMonth; 
     updateDisplay(); 
    } 
}; 

//我用它来显示一个漂亮的日期格式

private void updateDisplay() { 
    // TODO Auto-generated method stub 
    if(mMonth+1<10 && mDay >10) 
     date.setText(new StringBuilder() 
     .append(mYear).append("-").append("0").append(mMonth + 1).append("-").append(mDay)); 
    else if(mMonth+1>10 && mDay<10) 
     date.setText(new StringBuilder() 
     // Month is 0 based so add 1 
     .append(mYear).append("-").append(mMonth + 1).append("-").append("0").append(mDay)); 

    else if(mMonth+1<10 && mDay<10) 
     date.setText(new StringBuilder() 
     // Month is 0 based so add 1 
     .append(mYear).append("-").append("0").append(mMonth + 1).append("-").append("0").append(mDay)); 
    else 
     date.setText(new StringBuilder() 
      // Month is 0 based so add 1 
     .append(mYear).append("-").append(mMonth + 1).append("-").append(mDay)); 
} 
+0

你不需要在每一个分支StringBuilder的。只需连接“+”即可。编译器会进行优化,并且可读性会好得多。 – Moritz