解决TimePickerDialog中onTimeSet和 DatePickerDialog中onDateSet执行两次的问题

首先大家千万别把Date写成了Data  

  最近在写Fragment的示例,在  new DatePickerDialog(getActivity(),
new OnDateSetListener() {


/**
* month java 0 --- 11 月来表示1月到12月
*/
@Override
public void onDateSet(DatePicker arg0,
int selectedYear, int selectedMonth,
int selectedDay) {
Toast.makeText(
getActivity(),
selectedYear + "年" + (selectedMonth + 1)
+ "月" + selectedDay + "日",
Toast.LENGTH_LONG).show();
/**
* Fragment 与Activity 之间的通信,数据交互
*/
TextView txtResult = (TextView) getActivity()
.findViewById(R.id.text_dialog_result);
txtResult.setText(selectedYear + "年"
+ (selectedMonth + 1) + "月" + selectedDay
+ "日");
}
}, year, monthOfYear, dayOfMonth);

执行了两次!!!!

网上一查,这是android4.1和4.2存在的一个bug,需要修改framework里的DatePickerDialog.java源文件,


大家只需写一个子类继承DatePickerDialog,然后在里面重写父类的onStop()方法。如:

protected void onStop() {
/**
* 注释
*/
// super.onStop();
}

就可以了!!问题就解决了!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值