6

ユーザーが自分自身を表すために選択した画像を選択するために、アプリの設定で使用する独自の 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;

この問題ですでに数時間を失っています。コンパイラが不平を言っている理由について何か考えはありますか?

ありがとう!

4

2 に答える 2

9

実際、このAccessibilityManagerクラスには というメソッドがありませんgetInstance()ドキュメントから:

アクセシビリティ マネージャーへのハンドルを取得するには、次の手順を実行します。

AccessibilityManager accessibilityManager =
    (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);

したがって、本当に必要なのはContext. 幸運なことにView、それ自体が であり、そのContext親コン​​テキストへの参照を保持している があります。

于 2013-08-08T15:04:37.017 に答える