一开始使用EditText点击来弹出DatePickerDialog,但是会弹出软键盘,于是设置EditText的InputType,结果还是弹出软件盘。
然后将EditText换成Button,结果你能想到?还是弹出键盘。
查看DatePickerDialog类,AlertDialog类,发现里面有EditText,所以会自动弹出键盘。那么该如何禁止它自动弹出呢。
最好的方法就是重写DatePickerDialog,代码如下
- public class MyDatePickerDialog extends DatePickerDialog {
- public MyDatePickerDialog(Context context,
- OnDateSetListener callBack, int year, int monthOfYear,
- int dayOfMonth) {
- super(context, callBack, year, monthOfYear, dayOfMonth);
- // TODO Auto-generated constructor stub
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
- }
- }
最关键的一条代码
- getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
然后再来用Button和EditText测试,果然不弹出键盘了
转载自:http://blog.csdn.net/wl910211/article/details/41827533