【发布时间】:2012-11-22 07:03:46
【问题描述】:
我有一个活动,我有两个日期选择器,首先我通过这些语句初始化它们
public class birthDate extends Activity{
Calendar c = Calendar.getInstance();
int currentYear = c.get(Calendar.YEAR);
int currentMonth = c.get(Calendar.MONTH);
int currentDay = c.get(Calendar.DAY_OF_MONTH);
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.birthdate);
DatePicker birthDayDatePicker,periodDatePicker;
birthDayDatePicker = (DatePicker)findViewById(R.id.DatePickerBirthDay);
periodDatePicker = (DatePicker)findViewById(R.id.DatePickerPeriod);
periodDatePicker.init(currentYear, currentMonth, currentDay, new OnDateChangedListener()
{
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2,int arg3) {
// TODO Auto-generated method stub
birthDateCalculations();
}
});
birthDayDatePicker.init(currentYear, currentMonth, currentDay, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
periodDateCalculations();
}
});
}}
我意识到那些监听器只发生了一次,就好像我再次点击日期选择器一样,这些语句将不会被应用.. 我想要一种方法来让监听器在我每次点击日期选择器时都处于活动状态。
提前致谢!
【问题讨论】:
-
你能试试这个代码吗? DatePickerDialog dpd; createDateField().show(); private DatePickerDialog createDialogWithoutDateField(){if(dpd!=null){return dpd;}dpd = new DatePickerDialog(Activity.this,mDateSetListener,mYear, mMonth,mDay);这是你的 mDateSetListener。
-
public DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) { //这里是你的东西 }
-
如我所见,您的代码包含对话框,据我所知,对话框是从屏幕中出来的,这不是我想要的,或者我错了?
-
是的,你是对的。我说的是另一种选择。我在评论中提出了建议
-
好的,谢谢,但我不想使用对话框,谢谢
标签: java android eclipse datepicker listeners