安卓点击Edittext弹出对话框实现操作(DatePicker,实现日期的输入)隐藏键盘
2014-10-13 08:49
716 查看
问题:Edittext不依靠button独立实现日期输入。--------一定要看方案三
发现EditText setOnClickListener事件响应中,点击俩次才会响应。当焦点在其他控件上时,第一次点击获取焦点,第二次点击响应。
解决方案一:
改用setOnTouchListener监听android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变。
我用的安卓模拟器很容易出现触摸触发多次监听事件,所以改用了方案二。
解决方案二:
对焦点改变和点击事件同时设置监听。setOnClickListener&setOnFocusChangedListener。
如下所示:
解决方案三:
在布局文件中设置android:focusable=“false”;或者EditText.setInputType(InputType.TYPE_NULL);不会弹出输入法
此时它不会获得焦点,所以不用对焦点的改变进行监听。就可以直接单独监听clickListener了。
个人认为方案三为最佳解决方案,代码量可以减少一半。
ps:
<!-- 编辑框显示android:background="@android:drawable/editbox_background_normal"-->
android:background="@null",不显示编辑框。
发现EditText setOnClickListener事件响应中,点击俩次才会响应。当焦点在其他控件上时,第一次点击获取焦点,第二次点击响应。
解决方案一:
改用setOnTouchListener监听android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变。
我用的安卓模拟器很容易出现触摸触发多次监听事件,所以改用了方案二。
解决方案二:
对焦点改变和点击事件同时设置监听。setOnClickListener&setOnFocusChangedListener。
如下所示:
class MyFocusChangeListener implements View.OnFocusChangeListener { public void onFocusChange(View arg0, boolean arg1) { // TODO Auto-generated method stub if (arg1)//需要留意这个句,不然当焦点切换到其他控件时,会触发下面的语句。 { hideIM(arg0);//隐藏键盘 switch (arg0.getId()) { case R.id.applydate: //EditText applyText = (EditText) findViewById(R.id.applydate); new MyClickListener().datePick(applyText); break; case R.id.diagnosedate: //EditText diagnoseText = (EditText) findViewById(R.id.diagnosedate); new MyClickListener().datePick(diagnoseText); break; default:{} break; } } } }
解决方案三:
在布局文件中设置android:focusable=“false”;或者EditText.setInputType(InputType.TYPE_NULL);不会弹出输入法
此时它不会获得焦点,所以不用对焦点的改变进行监听。就可以直接单独监听clickListener了。
个人认为方案三为最佳解决方案,代码量可以减少一半。
ps:
<!-- 编辑框显示android:background="@android:drawable/editbox_background_normal"-->
android:background="@null",不显示编辑框。
相关文章推荐
- android 实现点击输入框弹出日期选择对话框(DatePickerDialog)
- 点击EditText 弹出日期选择器DatePickerDialog
- 安卓点击EditText,弹出日期选择界面,选择日期,返回给EditText
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- 安卓点击EditText,弹出日期选择界面,选择日期,返回给EditText
- Android EditText 反射实现有光标闪,但点击不弹出键盘
- Android.edittext点击时,隐藏系统弹出的键盘,显示出光标
- EditText或者TextView单击时弹出DatePicker对话框,然后弹出软键盘,后来我禁止EditText还是弹出来
- 在Android EditText中实现日期时间选择器(DatePicker和TimePicker)
- 阻止jquery datepicker控件在移动设备上被点击时弹出输入键盘
- 1怎样让输入的text文本填写的部分只添加数字、2怎样将输入的数字一次性全部删除 3怎样选择密码 让它不显示 4 怎样实现在没有return的情况下点击button的情况下就能够使键盘页面下落5 怎样实现点击指定的button来对使指定的text进行键盘弹出 6怎样改变button按钮的状态
- android 点击EditText始终不弹出软件键盘实现代码
- 安卓EditText有时点击后无法自动弹出键盘的解决办法;TextWatcher多次调用问题
- Android.EditText点击时,隐藏系统弹出的键盘,显示出光标
- 安卓自定义alertdialog中edittext点击不出现输入键盘解决方法
- EditText设置弹出数字键盘,并且只能输入数字和.
- 安卓(Android)在AlertDialog中的EditText获取焦点并弹出、隐藏软键盘(输入法软件)
- EditText 获取焦点时 输入法弹出 点击EditText以外的部分 输入法隐藏
- Android手机开发:EditText+DatePicker带日期选择器的编辑框
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。