2014-10-06 45 views
0

我有一個EditText已經有一些價值,當我點擊EditText然後它打開DatePickerDialog。所以我可以選擇一些日期。一旦我選擇了日期並點擊完成,那麼之前的值應該被更新。但我不知道如何更新價值。如何更新DatePickerDialog中的EditText值

這是我的代碼。

estimate_closedate.setText("2014-09-12"); 
estimate_closedate.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       System.out.println("datepicker inside"); 
       DatePickerDialog dpd = new DatePickerDialog(context, 
         mDateSetListener, myear, mmonth, mday); 
       dpd.show(); 
      } 
estimate_closedate.setText(nextdate); 
private DatePickerDialog.OnDateSetListener mDateSetListener = new 
      DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, int monthOfYear, 
         int dayOfMonth) { 
        myear=year; 
        mmonth=monthOfYear+1; 
        mday=dayOfMonth; 
        if(mmonth<10) 
        { 
         month = 0 + Integer.toString(mmonth); 
        } 
        else 
        { 
         month = Integer.toString(mmonth); 
        } 
        if(mday<10) 
        { 
         day = 0 + Integer.toString(mday); 
        } 
        else 
        { 
         day = Integer.toString(mday); 
        } 
        nextdate = (new StringBuilder().append(myear).append("-").append(month).append("-").append(day)).toString(); 

       } 
      }; 

回答

0

試試這個:

estimate_closedate.setText("2014-09-12"); 
estimate_closedate.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       System.out.println("datepicker inside"); 
       DatePickerDialog dpd = new DatePickerDialog(context, 
         mDateSetListener, myear, mmonth, mday); 
       dpd.show(); 
      } 

private DatePickerDialog.OnDateSetListener mDateSetListener = new 
      DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker view, int year, int monthOfYear, 
         int dayOfMonth) { 
        myear=year; 
        mmonth=monthOfYear+1; 
        mday=dayOfMonth; 
        if(mmonth<10) 
        { 
         month = 0 + Integer.toString(mmonth); 
        } 
        else 
        { 
         month = Integer.toString(mmonth); 
        } 
        if(mday<10) 
        { 
         day = 0 + Integer.toString(mday); 
        } 
        else 
        { 
         day = Integer.toString(mday); 
        } 
        nextdate = (new StringBuilder().append(myear).append("-").append(month).append("-").append(day)).toString(); 
        estimate_closedate.setText(nextdate); 
       } 
      }; 
+0

不,它不更新以前的值。 – user3663600 2014-10-06 11:10:00

+0

試試這個例子:http://www.mkyong.com/android/android-date-picker-example/ – 2014-10-06 11:14:02

0

只需設置文本的EditText日期選取器中的你onDateSet方法。 此行之後就:

  nextdate = (new StringBuilder().append(myear).append("-").append(month).append("-").append(day)).toString(); 

補充一點:

estimate_closedate.setText(nextdate); 
0

試試這個:

private DatePickerDialog.OnDateSetListener mDateSetListener = new 
     DatePickerDialog.OnDateSetListener() { 
      @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear, 
        int dayOfMonth) { 
       myear=year; 
       mmonth=monthOfYear+1; 
       mday=dayOfMonth; 
       if(mmonth<10) 
       { 
        month = 0 + Integer.toString(mmonth); 
       } 
       else 
       { 
        month = Integer.toString(mmonth); 
       } 
       if(mday<10) 
       { 
        day = 0 + Integer.toString(mday); 
       } 
       else 
       { 
        day = Integer.toString(mday); 
       } 
       nextdate = (new StringBuilder().append(myear).append("-").append(month).append("-").append(day)).toString(); 

       estimate_closedate.setText(nextdate); 
      } 
     }; 
1

你忘了onDateSet方法來更新EditText,只是把這個行結束它:

public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
    ///....  
    nextdate = (new StringBuilder().append(myear).append("-").append(month).append("").append(day)).toString(); 

    estimate_closedate.setText(nextdate);//this is how you update edit text 
}