gpt4 book ai didi

android-datepicker - Android 1.5 中 onDateChanged() 中具有最大和最小日期的日期选择器?

转载 作者:行者123 更新时间:2023-12-01 12:57:51 24 4
gpt4 key购买 nike

我正在开发 android 1.5 中的 DatePicker。我正在尝试设置最大和最小日期。最小日期应该是当前日期,最大日期应该是我将从字符串中提供的日期,如 maxYear、maxMonth、maxDay。(假设今天的日期 = 30/12/2011,但它选择 29/12/2011)

最小日期一切正常。因为它只显示当前日期。但是在选择器上使用减号按钮进行选择时,它选择的日期小于今天的日期。而在最大日期选择的情况下,它会选择比最大日期更多的日、月和年。

如何限制用户不能选择小于最小日期和最大日期。我必须提出什么额外条件才能使其完美?

enter code here

///Whole code same


mport java.sql.Date;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import android.widget.DatePicker.OnDateChangedListener;

public class DatePickerActivity extends Activity implements Button.OnClickListener {
public String dateOutput=null;

final Calendar c = Calendar.getInstance();
int minYear1 = c.get(Calendar.YEAR);
int minMonth1 = c.get(Calendar.MONTH);
int minDay1 = c.get(Calendar.DAY_OF_MONTH);

int maxYear = 2011;//
int maxMonth = 12;
int maxDay = 29;

int minYear = minYear1;
int minMonth = minMonth1;
int minDay = minDay1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatePicker DateDP = (DatePicker) findViewById (R.id.ad_date_picker);
DateDP.init(minYear1, minMonth1, minDay1, new OnDateChangedListener()
{

public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year < minYear)
view.updateDate(minYear, minMonth, minDay);

if (monthOfYear < minMonth && year == minYear )
view.updateDate(minYear, minMonth, minDay );



if (dayOfMonth < minDay && year == minYear && monthOfYear == minMonth)
view.updateDate(minYear, minMonth, minDay);


if (year > maxYear)
view.updateDate(maxYear, maxMonth, maxDay);

if (monthOfYear > maxMonth && year == maxYear)
view.updateDate(maxYear, maxMonth, maxDay);

if (dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth)
view.updateDate(maxYear, maxMonth, maxDay);

dateOutput = String.format("Date Selected: %02d/%02d/%04d",
dayOfMonth, monthOfYear+1, year);
// Log.d("Debug", dateOutput);



Toast.makeText(DatePickerActivity.this,dateOutput, Toast.LENGTH_SHORT).show();


}}); // DateDP.init()



}



}

最佳答案

这样我的问题就解决了

DateDP.init(minYear, minMonth, minDay, new OnDateChangedListener()
{

public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
if (year > maxYear ||monthOfYear > maxMonth && year == maxYear||
dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth){
// Toast.makeText(DatePickerActivity.this,"max year", Toast.LENGTH_SHORT).show();

view.updateDate(maxYear, maxMonth, maxDay);

dateOutput = String.format("%04d-%02d-%02d",
maxYear, maxMonth+1, maxDay);
//Toast.makeText(DatePickerActivity.this,"maxYear "+dateOutput, Toast.LENGTH_SHORT).show();

}else if(year < minYear ||monthOfYear < minMonth && year == minYear||
dayOfMonth < minDay && year == minYear && monthOfYear == minMonth){


//Toast.makeText(DatePickerActivity.this,"min year", Toast.LENGTH_SHORT).show();

view.updateDate(minYear, minMonth, minDay );

dateOutput = String.format("%04d-%02d-%02d",
minYear, minMonth+1, minDay);

//Toast.makeText(ManageShowing.this,dateOutput, Toast.LENGTH_SHORT).show();

}else{

//Toast.makeText(ManageShowing.this,"else", Toast.LENGTH_SHORT).show();

dateOutput = String.format("%04d-%02d-%02d",
year, monthOfYear+1, dayOfMonth);

// Toast.makeText(ManageShowing.this,dateOutput, Toast.LENGTH_SHORT).show();

}
mDateDisplay.setText(dateOutput);

}}); // DateDP.init()

关于android-datepicker - Android 1.5 中 onDateChanged() 中具有最大和最小日期的日期选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com