问题:
三星手机中插件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:

本文分析了三星手机中插件EditText出现资源丢失错误的原因,该问题源于默认的textSelectHandle图标在某些系统中无法正常获取。解决方案是在所有EditText或其子类中明确指定textSelectHandle参数。
2745

被折叠的 条评论
为什么被折叠?



