DatePicker 对话框和按钮 => 单击两次打开
DatePicker dialog and button => click twice to open
我在我的 onCreate
方法中创建了一个对话框,在我的正常 activity 中:
datePicker = new DatePickerDialog(this, this, cal.get(YEAR),
cal.get(MONTH), cal.get(DAY_OF_MONTH));
然后我调用按钮侦听器:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
取消时 =>
- 当我单击此按钮一次时,会显示日期选择器。
- 我在对话框中单击取消
- 我第二次点击按钮,日期选择器显示
确定时 =>
- 当我单击此按钮一次时,会显示日期选择器。
- 我在对话框中单击“确定”
- 我第二次点击按钮,日期选择器没有显示
不过,如果我写两次 Datepicker.show()
,那就行得通了:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker.show();
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
你可以试试下面的代码...每次创建一个对话框对象,每次都会显示。希望有用。
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker = new DatePickerDialog(this, this, cal.get(YEAR), cal.get(MONTH), cal.get(DAY_OF_MONTH));
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
这可能是由于对 onDateSet(...) 回调进行了某种 "heavy" 处理。
尝试使用这个:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
datePicker.show();
}
}, 300);
}
});
我在我的 onCreate
方法中创建了一个对话框,在我的正常 activity 中:
datePicker = new DatePickerDialog(this, this, cal.get(YEAR),
cal.get(MONTH), cal.get(DAY_OF_MONTH));
然后我调用按钮侦听器:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
取消时 =>
- 当我单击此按钮一次时,会显示日期选择器。
- 我在对话框中单击取消
- 我第二次点击按钮,日期选择器显示
确定时 =>
- 当我单击此按钮一次时,会显示日期选择器。
- 我在对话框中单击“确定”
- 我第二次点击按钮,日期选择器没有显示
不过,如果我写两次 Datepicker.show()
,那就行得通了:
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker.show();
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
你可以试试下面的代码...每次创建一个对话框对象,每次都会显示。希望有用。
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
datePicker = new DatePickerDialog(this, this, cal.get(YEAR), cal.get(MONTH), cal.get(DAY_OF_MONTH));
datePicker.show();
Log.e("tag", "Passage dans le click");
}
});
这可能是由于对 onDateSet(...) 回调进行了某种 "heavy" 处理。 尝试使用这个:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
datePicker.show();
}
}, 300);
}
});