我正在尝试创建自己的ImagePreference,我将在我的应用首选项中使用它,以便选择用户选择代表自己的图片。
我不太确定我在做什么,但基本上我正在模仿其他一些偏好课程。到目前为止,我只是遇到了这种方法的问题:
public class ImagePreference extends Preference {
...
void sendAccessibilityEvent(View view) {
// Since the view is still not attached we create, populate,
// and send the event directly since we do not know when it
// will be attached and posting commands is not as clean.
AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(getContext());
if (mSendClickAccessibilityEvent && accessibilityManager.isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain();
event.setEventType(AccessibilityEvent.TYPE_VIEW_CLICKED);
view.onInitializeAccessibilityEvent(event);
view.dispatchPopulateAccessibilityEvent(event);
accessibilityManager.sendAccessibilityEvent(event);
}
mSendClickAccessibilityEvent = false;
}
我刚刚从TwoStatePreference类复制了这段代码。我甚至不确定我是否需要这个方法,但编译器抱怨说AccessibilityManager类不包含getInstance方法。
我认为这可能是导入的问题,但是我导入了与TwoStatePreference相同的类,即:
import android.view.accessibility.AccessibilityManager;
我已经因为这个问题已经失去了几个小时。知道编译器为什么抱怨?
谢谢!
答案 0 :(得分:5)
实际上,AccessibilityManager
类没有名为getInstance()
的方法。 From the docs:
要获取辅助功能管理器的句柄,请执行以下操作:
AccessibilityManager accessibilityManager = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
所以你需要的只是一个Context
。幸运的是,你有一个View
,它本身就是Context
,并且保存了对它的父上下文的引用。
答案 1 :(得分:4)
此方法已被隐藏。 源代码:
/** * Get an AccessibilityManager instance (create one if necessary). * * @param context Context in which this manager operates. * * @hide */ public static AccessibilityManager getInstance(Context context)