【问题标题】:Android date picker listener doesn't work more than one time..Android日期选择器侦听器不会工作超过一次..
【发布时间】: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


【解决方案1】:

请在活动的 oncreate 方法中初始化选择器。

【讨论】:

    【解决方案2】:
     birthDayDatePicker = (DatePicker)findViewById(R.id.DatePickerBirthDay);
            periodDatePicker = (DatePicker)findViewById(R.id.DatePickerPeriod);
    
            //initialize period date picker with current date and on date change listener 
            periodDatePicker.init(currentYear, currentMonth, currentDay, new OnDateChangedListener()
            {
    
                @Override
                public void onDateChanged(DatePicker periodDatePicker, int currentYear, int currentMonth,int currentDay) {
                    // TODO Auto-generated method stub
                    Number = 1;
                    birthDayDatePicker.init(currentYear, currentMonth, currentDay, null);
                    birthDateCalculations();
    
                }
            });
    
            //initialize birth date picker with current date and on date change listener 
            birthDayDatePicker.init(currentYear, currentMonth, currentDay, new OnDateChangedListener () {
    
                @Override
                public void onDateChanged(DatePicker birthDayDatePicker, int currentYear, int currentMonth, int currentDay) {
                    // TODO Auto-generated method stub
                    Number = 2;
                    periodDatePicker.init(currentYear, currentMonth, currentDay, null);
                    periodDateCalculations();
    
                    }
            });
    
    }
    
    > Blockquote
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-23
      • 2014-07-21
      • 2017-12-24
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多