问题:
三星手机中插件EditText获取焦点或长按显示SelectHanlder图标的时候,报资源丢失错误。
问题分析:
基于android 4.0源码。
EditText继承于TextView。
分析android.view.TextView源码:
public TextView(Context context, AttributeSet attrs, int defStyle)构造函数中获取Attributes参数:
在内部类InsertionPointCursorController中被调用获取drawable资源。
然后长按是调用perfomLongClick()函数调用getInsertionController()获取InsertionPointCursorController实例并显示选择图标。
然而三星或部分其他手机系统默认的textSelectHandle图标在插件中获取不到资源,从而导致插件中的EditText找不到资源问题。
解决方案:
所有EditText或其子类在layout布局中都需要添加textSelectHandle参数。比如其子类android.widget.AutoCompleteTextView: