2014-02-19 18 views
1

enter image description here以下是选择日期的来源。它工作正常,但我想再次选择日期时更改日期。如何在再次选择日期时在EditText中显示上次选择的日期?

private int year; 
private int month; 
private int day; 
     signup_bday=(EditText)findViewById(R.id.edittext_signup_birthday); 
     signup_bday.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Calendar mcurrentDate=Calendar.getInstance(); 
       year=mcurrentDate.get(Calendar.YEAR); 
       month=mcurrentDate.get(Calendar.MONTH); 
       day=mcurrentDate.get(Calendar.DAY_OF_MONTH); 

       DatePickerDialog mDatePicker=new  DatePickerDialog(CreateAccountActivity.this, new OnDateSetListener() 
       {     
        public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) 
        { 
        signup_bday.setText(new StringBuilder().append(month + 1).append("-").append(day).append("-").append(year).append(" ")); 
        } 
       },year, month, day); 
       mDatePicker.setTitle("Please select date");     
       mDatePicker.show(); 
     } 
    }); 

enter image description here

+0

http://www.mkyong.com/android/android-date-picker-example/ – appukrb

+0

你能澄清你所说的“我要改变日期”是什么意思?基于什么?你是否试图重构传递日期(日历对象)? – ErstwhileIII

+0

nups只想再次选择日期并显示上次选择的日期... – Banku

回答

2

好吧,我解决你的问题,下面是代码,

public class MainActivity extends Activity 
{ 
    private int year; 
    private int month; 
    private int day; 
    private EditText signup_bday; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     signup_bday=(EditText)findViewById(R.id.edittext_signup_birthday); 
     signup_bday.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       Calendar mcurrentDate=Calendar.getInstance(); 
       year=mcurrentDate.get(Calendar.YEAR); 
       month=mcurrentDate.get(Calendar.MONTH); 
       day=mcurrentDate.get(Calendar.DAY_OF_MONTH); 

       DatePickerDialog mDatePicker = new DatePickerDialog(MainActivity.this, new OnDateSetListener() 
       {     
        public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) 
        { 
         year = selectedyear; 
         month = selectedmonth; 
         day = selectedday; 
         signup_bday.setText(new StringBuilder().append(month + 1).append("-").append(day).append("-").append(year).append(" ")); 
        } 
       },year, month, day); 
       mDatePicker.setTitle("Please select date");     
       mDatePicker.show(); 
      } 
     }); 
    } 
} 

你只需要在onDateSet加上下面几行()方法,

year = selectedyear; 
month = selectedmonth; 
day = selectedday; 
+0

(y)thx broo ... – Banku

+0

@Banku欢迎。 – user3322955

+0

所有工作正常,但在kindle火高清日期选择器对话框不能正常工作... – Banku

1

我觉得你onDateSet方法没有得到所谓的。添加@override注释并尝试下面的代码。

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

} 

我的理解。第一次显示当前日期。如果用户选择2014年1月5日,则第二次显示先前选择的数据(2014年1月5日)。如果你正在努力实现这个再尝试这样的事情

final Calendar cal = Calendar.getInstance(); 
try { 
    cal.setTime(new Date(PREVIOUSLY_SELECTED_DATE)); 
} catch (IllegalArgumentException e) { 

} 
+0

嗯,但显示当前日期... – Banku

相关问题