Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
2015-07-31 15:30
387 查看
最近在学习Android开发,在编写程序的过程中,发现EditText setOnClickListener事件响应中,只有获取焦点的时候才会响应,
如当焦点在别的控件上时,只能先点击获取焦点,第二次点击才会响应,解决办法改用setOnTouchListener监听,
android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变,就会触发该事件。先记录下来,分享一下
代码如下:
上面错误的:
如当焦点在别的控件上时,只能先点击获取焦点,第二次点击才会响应,解决办法改用setOnTouchListener监听,
android.view.View下的OnTouchListener接口是只要触摸(touch)状态改变,就会触发该事件。先记录下来,分享一下
代码如下:
woman_SDloadText.setOnTouchListener(new View.OnTouchListener() { //按住和松开的标识 int touch_flag=0; @Override public boolean onTouch(View v, MotionEvent event) { touch_flag++; if(touch_flag==2){ //自己业务 } return false; } });
上面错误的:
edit.setOnTouchListener(new EditText.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if (event.getAction() == MotionEvent.ACTION_DOWN) { DatePickerDialog dialog = new DatePickerDialog( getContext(), new OnMyDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { int month = monthOfYear + 1; edit.setText(year + "/" + month + "/" + dayOfMonth); // 传递数值 // date = year + "/" + month + "/" + // dayOfMonth; } }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)); dialog.show(); } return false; } });
相关文章推荐
- Android Studio打包APK时出现 is not translated in "en" (English) [MissingTranslation]
- Android线程
- 学习android编程之路(5)— Toast使用方法
- Android自定义视图
- Android像素与dip的关系
- android studio升级失败提示 Connection failed解决方法
- Android开发加载音乐文件时
- Android自定义视图
- Android 5.0 android:elevation 如果给button设置效果
- Android AlertDiaog自定义EditText自动弹出软键盘
- 【TabLayout】 Android 另一种Tab的实现
- 自定义view(二)
- Android完全退出activity
- Android之消息推送聊天实现
- 使用Java代码在Android中实现图片裁剪功能
- 【Android本地开发:图像处理】Skia图像库
- Android Bundle传值
- Android 文件读写操作 总结
- android关于点九图的制作
- 八款Android 开发者必备的小工具