日期选择器对话框不上点击打开 [英] Datepicker dialog box does not open on click
本文介绍了日期选择器对话框不上点击打开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我运行,按一下按钮,它不会打开datapicker DialogBox的。我无法找出什么是不正确。请,任何一个可以检查和指导我哪里是在程序不正确的code。
{
//声明类
ButtonViews意见;
dpListener dpListenerView;
// Declartion会员vairables
INT日,月,x_year;
诠释小时;
INT分钟;
挂历台历; @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main); 意见=新ButtonViews();
dpListenerView =新dpListener(); // ButtonListener
views.button_date.setOnClickListener(本);
views.button_time.setOnClickListener(本);
// //拿起使用日历类的默认日期
日历= GregorianCalendar.getInstance(TimeZone.getTimeZone(GMT),Locale.getDefault()); 天= calendar.get(Calendar.DAY_OF_MONTH);
月= calendar.get(的Calendar.MONTH);
x_year = calendar.get(Calendar.YEAR);
Log.i(天民.....,+月); 小时= calendar.get(Calendar.HOUR_OF_DAY);
分钟= calendar.get(Calendar.MINUTE); setupDate(日,月,x_year);
setupTime(小时,分钟);
} @覆盖
公共无效的onClick(视图v){
开关(v.getId()){
案例R.id.button_date:
showDatePickerDialog();
打破;
案例R.id.button_time:
showTimePickerDialog();
打破;
}
}
私人无效setupTime(INT小时,INT分钟){
views.button_time.setText(小时+:+分钟);
} 私人无效setupDate(INT日,月整型,诠释年){
串strMonth =((月+ 1) - ; = 9)? (0+(月+ 1)):将String.valueOf(月+ 1);
views.button_date.setText(将String.valueOf(天)+/+ strMonth +/+将String.valueOf(年));
} 私人无效showDatePickerDialog(){
DatePickerDialog datepickerdialog =新DatePickerDialog
(
这个,
dpListenerView,
/ *新DatePickerDialog.OnDateSetListener(){
@覆盖
公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,诠释请将dayOfMonth){
}} * /
//这个, x_year,
月,
天
);
}
/ *私人OnDateSetListener dpListener =新OnDateSetListener(){
@覆盖
公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,诠释请将dayOfMonth){
* // *天=请将dayOfMonth;
月= monthOfYear;
x_year =年; * // *
setupDate(请将dayOfMonth,monthOfYear,年);
} }; * /
公共无效showTimePickerDialog(){ TimePickerDialog timePickerDialog =新TimePickerDialog(
DateTimePickerActivity.this,
这个,
小时,
分钟,
真正
);
calendar.set(Calendar.HOUR,小时);
calendar.set(Calendar.MINUTE,分钟); timePickerDialog.show();
} // @覆盖
//公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,诠释请将dayOfMonth){
// setupDate(请将dayOfMonth,monthOfYear,年);
//} @覆盖
公共无效onTimeSet(TimePicker观点,诠释HOUROFDAY,分整型){
setupTime(HOUROFDAY,分钟);
}
类ButtonViews { 按钮button_time;
按钮button_date; 公共ButtonViews(){
button_date =(按钮)findViewById(R.id.button_date);
button_time =(按钮)findViewById(R.id.button_time);
}
} 类dpListener实现OnDateSetListener {
@覆盖
公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,诠释请将dayOfMonth){
/ *天=请将dayOfMonth;
月= monthOfYear;
x_year =年; * / setupDate(请将dayOfMonth,monthOfYear,年);
} }
}
解决方案
@覆盖
公共无效的onClick(视图v){
开关(v.getId()){
案例R.id.button_date:
的ShowDialog(999); //用于显示对话框方法。您可以使用任何诠释
打破;
案例R.id.button_time:
的ShowDialog(99);
打破;
}
}
和定义从int鉴定对话框此方法。
@覆盖
保护对话框onCreateDialog(INT ID){
// TODO自动生成方法存根
如果(ID == 999){
返回新DatePickerDialog(这一点,myDateListener,年,月,日);
}否则如果(ID == 99){
返回新TimePickerDialog(这一点,myTimeListener,H,M,真正的);
}
返回null;
}
和有听众
//对于日期选取器
私人DatePickerDialog.OnDateSetListener myDateListener =新OnDateSetListener(){ @覆盖
公共无效onDateSet(查看的DatePicker,年整型,诠释monthOfYear,
INT请将dayOfMonth){
// TODO自动生成方法存根
天=请将dayOfMonth;
一个月= monthOfYear + 1;
年=年;
Toast.makeText(
MainActivity.this,
新的StringBuilder()追加(天).append( - )。追加(月)
。.append( - )附加(年),Toast.LENGTH_LONG).show();
}
};
//对于TimePicker
私人TimePickerDialog.OnTimeSetListener myTimeListener =新OnTimeSetListener(){ @覆盖
公共无效onTimeSet(TimePicker观点,诠释HOUROFDAY,分整型){
// TODO自动生成方法存根
H = HOUROFDAY;
M =分钟;
Toast.makeText(MainActivity.this,
新的StringBuilder()追加(H).append(:)。追加(米),
Toast.LENGTH_LONG).show();
}
};
When I run and click the button, it does not open the datapicker dialogbox. I am not able to find out what is incorrect. Please, any one can check and guide me where is the incorrect code in the program.
{
//Declaration for class
ButtonViews views;
dpListener dpListenerView;
// Declartion for member vairables
int day, month, x_year;
int hour;
int minute;
Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
views = new ButtonViews();
dpListenerView = new dpListener();
//ButtonListener
views.button_date.setOnClickListener(this);
views.button_time.setOnClickListener(this);
//
// pick up the default date using Calender class
calendar = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.getDefault());
day = calendar.get(Calendar.DAY_OF_MONTH);
month = calendar.get(Calendar.MONTH);
x_year = calendar.get(Calendar.YEAR);
Log.i("DAY in Num....."," "+ month);
hour = calendar.get(Calendar.HOUR_OF_DAY);
minute = calendar.get(Calendar.MINUTE);
setupDate(day, month, x_year);
setupTime(hour, minute);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_date:
showDatePickerDialog();
break;
case R.id.button_time:
showTimePickerDialog();
break;
}
}
private void setupTime(int hours, int minutes) {
views.button_time.setText(hours + ":" + minutes);
}
private void setupDate(int day, int month, int year) {
String strMonth = ((month+1) <=9) ? ("0" + (month+1)) : String.valueOf(month+1);
views.button_date.setText(String.valueOf(day) + "/" + strMonth + "/" + String.valueOf(year));
}
private void showDatePickerDialog() {
DatePickerDialog datepickerdialog = new DatePickerDialog
(
this,
dpListenerView,
/* new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
} },*/
//this,
x_year,
month,
day
);
}
/* private OnDateSetListener dpListener = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
*//* day = dayOfMonth;
month = monthOfYear;
x_year = year;*//*
setupDate(dayOfMonth,monthOfYear,year);
}
};*/
public void showTimePickerDialog() {
TimePickerDialog timePickerDialog = new TimePickerDialog(
DateTimePickerActivity.this,
this,
hour,
minute,
true
);
calendar.set(Calendar.HOUR, hour);
calendar.set(Calendar.MINUTE, minute);
timePickerDialog.show();
}
// @Override
// public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// setupDate(dayOfMonth,monthOfYear,year);
// }
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
setupTime(hourOfDay, minute);
}
class ButtonViews {
Button button_time;
Button button_date;
public ButtonViews() {
button_date = (Button) findViewById(R.id.button_date);
button_time = (Button) findViewById(R.id.button_time);
}
}
class dpListener implements OnDateSetListener
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
/* day = dayOfMonth;
month = monthOfYear;
x_year = year;*/
setupDate(dayOfMonth,monthOfYear,year);
}
}
}
解决方案
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_date:
showDialog(999);// Method for Show Dialog. You can use any Int
break;
case R.id.button_time:
showDialog(99);
break;
}
}
and Define this method for Identified dialog from int.
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
if (id == 999) {
return new DatePickerDialog(this, myDateListener, yr, month, day);
} else if (id == 99) {
return new TimePickerDialog(this, myTimeListener, h, m, true);
}
return null;
}
And there Listeners
// For Date Picker
private DatePickerDialog.OnDateSetListener myDateListener = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
day = dayOfMonth;
month = monthOfYear + 1;
yr = year;
Toast.makeText(
MainActivity.this,
new StringBuilder().append(day).append("-").append(month)
.append("-").append(yr), Toast.LENGTH_LONG).show();
}
};
// For TimePicker
private TimePickerDialog.OnTimeSetListener myTimeListener = new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
h = hourOfDay;
m = minute;
Toast.makeText(MainActivity.this,
new StringBuilder().append(h).append(":").append(m),
Toast.LENGTH_LONG).show();
}
};
这篇关于日期选择器对话框不上点击打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文