2013-12-16 49 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