2011-07-20 81 views
0

我需要一点帮助。
在我的应用程序中,用户需要选择一个日期间隔(当按下一个按钮时),并且我不知道如何使用日期选择器来执行此操作!Android Date Picker帮助!

我正在追踪这个例子:http://developer.android.com/resources/tutorials/views/hello-datepicker.html,但我对这个教程两个问题...

1)我怎样才能做到这(在的情况下我有两个EditText上称为DatePickerDialog.OnDateSetListener onClick事件当用户点击其中一个,该应用程序显示日期选择器对话框)

2)如何在用户按下一个按钮后调用两次onClick?

tnhx! 对不起英语!

+0

我不确定你为什么要打onClick()两次?如果你想执行一个动作两次,然后把它放在onClick()循环中......也许你可以澄清你的意思是什么问题? –

+0

我试过...并没有工作...我只调用ShowDialog(0)这是DatePicker对话框.. – Shermano

回答

0

所以从你的解释,你想创建一个日期间隔选择器只需点击一个按钮。 通过使用类比从你的榜样,你必须做到以下几点:

// create two constants 
static final int DATE_DIALOG_FROM = 0; 
static final int DATE_DIALOG_TO = 1; 

// create case for two pickers 
protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_FROM: 
     return new DatePickerDialog(this, fromDateSetListener, mYear, mMonth,mDay); 
    case DATE_DIALOG_TO: 
     return new DatePickerDialog(this, toDateSetListener, mYear, mMonth,mDay); 
    } 
    return null; 
} 

// create two listeners for both of the cases 
private DatePickerDialog.OnDateSetListener fromDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     Toast.makeText(AccountsActivity.this,"From:" + year+"."+monthOfYear+"."+dayOfMonth, Toast.LENGTH_SHORT).show(); 
     showDialog(DATE_DIALOG_TO); 
    } 
}; 

private DatePickerDialog.OnDateSetListener toDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) { 
     Toast.makeText(AccountsActivity.this,"To:" + year+"."+monthOfYear+"."+dayOfMonth, Toast.LENGTH_SHORT).show(); 
     updateDisplay(); 
    } 
}; 

当你运行你的应用程序,第二选择器将首先完成后出现的权利。

稍后,您可以优化这段代码,添加自定义采摘等.. 如果有人知道一个更好的方式来创建一个日期间隔PICKER请告诉我们!