2012-03-13 38 views
2

解決方案沒有找到它,我花了幾個小時來應對這個挑戰。 如何獲得日期以查看當您按下「今天」按鈕時的情況?如何在android中設置DatePickerDialog中的日期?

想要獲得按下「今天」按鈕時顯示的日期。 而且,我們相信嘗試將信息添加到指定日期的屏幕顯示的過程。在外部類中定義

DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() { 

     @Override 
     public void onDateSet(DatePicker view, int pickyear, int monthOfYear, 
       int dayOfMonth) { 

     } 
    }, year, month-1, day); 
    // Dialog(Positive Button) 
    dpdialog.setButton(
      DialogInterface.BUTTON_POSITIVE, 
      "set", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        // Positive Button 
        // How to get the date set 
        String day = dpdialog.getDayOfMonth(); 
        String month = dpdialog.getMonth() + 1; 
        String year = dpdialog.getYear(); 
       } 
      }  
      ); 

    // Dialog (Negative Button) 
    dpdialog.setButton(
      DialogInterface.BUTTON_NEGATIVE, 
      "cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        // Negative Button 
       } 
      } 
      ); 

    // Dialog(Neutral Button) 
    dpdialog.setButton(
      DialogInterface.BUTTON_NEUTRAL, 
      "today", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        // Neutral Button 
       } 
      } 
      ); 

    dpdialog.show(); 
+5

沒有人去打擾,如果你回答你的問題不要打擾你的代碼格式。 – 2012-03-13 02:47:12

+0

對不起。 我應該有更多的問題和整理。 回來再次寫我自己的,我試圖提高可讀性。 – user1265435 2012-03-13 03:19:13

回答

1

變量將是從內部類/聯方法可見的,所以你可以做這樣的:

private String day; 
private String month; 
private String year; 

DatePickerDialog dpdialog = new DatePickerDialog(me, new OnDateSetListener() { 

    @Override 
    public void onDateSet(DatePicker view, int pickyear, int monthOfYear, int dayOfMonth) { 
     // you have the picked year/month/day here. 
     // For example: 
     day = String.valueOf(dayOfMonth); 
     month = String.valueOf(monthOfYear); 
     year = String.valueOf(pickyear); 
    } 

}, year, month-1, day); 
+0

謝謝你的回答 我想要得到一個按下「set」按鈕時顯示的日期,但我會。 我不知道如何按下「set」按鈕「onDateSet」時如何調用。 對不起基本問題。 – user1265435 2012-03-13 03:23:49

1
//decleration 
final static int DATE_DIALOG_ID=1; 
EditText dateedt; 
String date_selected=""; 
int currentDay,currentYear,currentMonth, 

//onCreate 
Calendar calendar=Calendar.getInstance(); 
     currentDay=calendar.get(calendar.DAY_OF_MONTH); 
     currentYear=calendar.get(calendar.YEAR); 
     currentMonth=calendar.get(calendar.MONTH)+1; 

dateedt=(EditText)findViewById(R.id.dateedt); 

dateedt.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       showDialog(DATE_DIALOG_ID); 
      } 
     }); 
//methods 
@Override 
     protected Dialog onCreateDialog(int id) { 
      // TODO Auto-generated method stub 

      switch(id) 
      { 
      case DATE_DIALOG_ID: 
       return new DatePickerDialog(this,mDateSetListener,currentYear,currentMonth-1,currentDay); 
} 
      return null; 
     } 

DatePickerDialog.OnDateSetListener mDateSetListener=new OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 
       // TODO Auto-generated method stub 

       if(monthOfYear < 10 && !String.valueOf(monthOfYear).contains("0")) 
       { 
        if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0")) 
        { 
         date_selected = "0"+String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year); 
         //selectedDateForDb = String.valueOf(year)+"-"+"0"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth); 
        } 
        else 
        { 
         date_selected = "0"+String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year); 
         //selectedDateForDb = String.valueOf(year)+"-0"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth); 
        } 
       } 
       else if(dayOfMonth < 10 && !String.valueOf(dayOfMonth).contains("0")) 
       { 
        date_selected = String.valueOf(monthOfYear+1)+" -0"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year); 
        //selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-0"+String.valueOf(dayOfMonth); 
       } 
       else 
       { 
        date_selected = String.valueOf(monthOfYear+1)+" -"+String.valueOf(dayOfMonth)+" -"+String.valueOf(year); 
        //selectedDateForDb = String.valueOf(year)+"-"+String.valueOf(monthOfYear+1)+"-"+String.valueOf(dayOfMonth); 

       } 
       dateedt.setText(date_selected); 
      } 
     }; 
+0

感謝您快速回答 我的問題是多麼錯誤。 我想在「對話框」而不是「顯示」中查看您正在查看的日期。 你有沒有想過得到這些信息,以及有多難。 – user1265435 2012-03-13 03:57:07

相關問題