2

ButterKnife にカスタム リスナー Annotation を作成しようとしていますが、うまくいきません。ここに私の注釈があります:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
@ListenerClass(
        targetType = "com.maddogs.mymoney.views.CameraImageView",
        setter = "setCameraImageViewListener",
        type = "com.maddogs.mymoney.views.CameraImageViewListener",
        method = @ListenerMethod(
                name = "onCloseClick",
                parameters = {"com.maddogs.mymoney.views.CameraImageView"},
                returnType = "boolean",
                defaultReturn = "true"
        )
)
public @interface OnCloseClick {
    int[] value() default { View.NO_ID };
}

そして私のCameraImageView:

 @Override
    public boolean onTouchEvent(MotionEvent event) {
    if(event.getAction() != MotionEvent.ACTION_DOWN
            &&(event.getX(0) <= this.getWidth()
            && event.getY(0) >= 0)
            && event.getX(0) >= this.getWidth() - closeBitmap.getWidth()
            && event.getY(0) <= closeBitmap.getHeight()){

        if(listener == null)
            throw new NullPointerException("CameraImageViewListener cannot be null");

        return listener.onCloseClick(this);
    }
    return super.onTouchEvent(event);
}

public void setCameraImageViewListener(CameraImageViewListener listener) {
        this.listener = listener;
    }

public static interface CameraImageViewListener{
    boolean onCloseClick(CameraImageView view);
}

そして私のプロジェクト構造:

構造

リスナーは常に null です。なにが問題ですか??ありがとう

4

1 に答える 1