您的位置:首页 > 其它

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

2015-11-11 17:12 330 查看
首先大家千万别把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();
}

就可以了!!问题就解决了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: