在xml文件中,edittext这个控件设置了,android:focusable=“false”,

在代码中edittext.setfocusable(true),edittext这个控件仍然无法点击,百度之后,得到的结果是:

一定要按一下这个顺序写,重新使edittext获取焦点:

                         edittext.setFocusable(true);
 edittext.setFocusableInTouchMode(true);
 edittext.requestFocus();
 edittext.requestFocusFromTouch();

这是为什么呢?


查阅API:

setFocusable(boolean):

Set whether this view can receive the focus. Setting this to false will also ensure that this view is not focusable in touch mode.

//--设置edittext是否可以获得焦点

setFocusableInTouchMode(boolean):

Set whether this view can receive focus while in touch mode. Setting this to true will also ensure that this view is focusable.

//--设置edittext在touch模式下是否可以获得焦点

requestFocus():

Call this to try to give focus to a specific view or to one of its descendants. A view will not actually take focus if it is not focusable (isFocusable() returns false), or if it is focusable and it is not focusable in touch mode (isFocusableInTouchMode()) while the device is in touch mode. 

//--调用这个给指定的view或者它的子view焦点。如果这个view在isFocusable()方法下返回false,或者isFocusableInTouchMode()方法下返回false,这个view不会真正获得焦点

requestFocusFromTouch():

Call this to try to give focus to a specific view or to one of its descendants. This is a special variant of requestFocus() that will allow views that are not focuable in touch mode to request focus when they are touched.

//--调用这个给指定的view或者它的子view焦点。这个特别的变异于(?)requestFocus()的方法会让在这个view被touch时,给view焦点。


以上。




更多相关文章

  1. 对android应用一些破解的方法
  2. (2019年10月更新) Android 最全的底部导航栏实现方法
  3. Android工程内嵌资源文件的两种方法
  4. 解决国行安卓(Android)手机无谷歌(Google)服务的一个参考方法
  5. Android在高jar包版本的工程中修改方法
  6. Android常见控件之TextView、EditView、Button、Menu
  7. WebView---Android中调用js方法及js中调用本地方法

随机推荐

  1. Android漂亮的Help提示框
  2. android之网络请求框架OKhttp、原生http
  3. android通用JSON解析
  4. android升级数据库(Sqlite)简单示例
  5. Android(安卓)studio 开发一个用户登录界
  6. Android(安卓)AnalogClock and DigitalCl
  7. android 控件 NumberPicker 简单使用
  8. Android(安卓)SDcard 文件读写,RandomAcce
  9. Android(安卓)情景模式
  10. Android(安卓)来电状态监听