1

アプリケーションが開始されると、ユーザーが画面に触れるまでカスタム ポップアップを実行します。画面がタッチされると、イベント onTouch() でキャッチし、ポップアップをキャンセルします。この時点から、イベントはもう必要ありません。問題は、イベントが生きていて、ユーザーが画面に触れるたびにジャンプし続けることです。このイベントのサブスクライブを解除する方法はありますか? c# のようなもの -= eventName. コードは以下のとおりです。

    @Override
public boolean onTouch(View v, MotionEvent event) {
    if (!_stopToast)
    {
    _hintToast.cancel();
    _stopToast = true;
    }
    return false;
}
4

1 に答える 1

0

既に定義されているタッチ リスナーをビューから削除するのに役立つメソッド ( removeTouchListenerなど) はありません。setOnTouchListenernullへの設定も役に立ちません。できることは、何もしないクラスの新しいオブジェクト参照を作成し、それをsetOnTouchListenerに設定することです。例えば:OnTouchListener

public final OnTouchListener dummyOnTouchListener = new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent rawEvent) {
        return false;
    }
};

そして、単に以下のように使用します:

yourView.setOnTouchListener(dummyOnTouchListener);
于 2012-08-02T14:51:07.517 に答える