Android 日期选择器帮助!

发布于 2024-11-25 18:03:21 字数 466 浏览 0 评论 0原文

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

我正在关注这个示例: http://developer.android.com/ resources/tutorials/views/hello-datepicker.html ,但我对本教程有两个问题...

1)我如何执行名为 DatePickerDialog.OnDateSetListener 的 onClick 事件(在我的情况下)有两个 EditText,当用户单击其中一个时,应用程序会显示日期选择器对话框)

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

天啊! 抱歉英语不好!

i need a little help here.
In my app a user need`s select one date interval (when press one button), and i'm not know how to do this using date picker!

i'm following this example: http://developer.android.com/resources/tutorials/views/hello-datepicker.html , but i have two questions about this tutorial...

1) How can i do which onClick event called DatePickerDialog.OnDateSetListener ( in the case where i have two EditText that when user click in wich one, the app shows the Date picker Dialog)

2) How can i call the onClick two times after user press one button?

tnhx!
Sorry for poor English!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

原谅我要高飞 2024-12-02 18:03:21

因此,根据您的解释,您希望只需单击一个按钮即可创建一个日期间隔选择器。
通过使用示例中的类比,您必须执行以下操作:

// 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();
    }
};

当您运行应用程序时,第二个选择器将在第一个选择器完成后立即出现。

稍后您可以优化此代码,添加自定义选择器等...
如果有人知道创建日期间隔选择器的更好方法,请告诉我们!

So from your explanation, you want to create a date interval picker from just one click on a button.
By using analogy from your example you have to do the following:

// 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();
    }
};

When you run your app, second picker will appear right after finishing with first.

Later you can optimize this code, add custom pickers etc...
If anyone knows a better way to create a DATE INTERVAL PICKER please let us know!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文