0

OnGlobalLayoutListenerを使用しています。このリスナーからのデータをどのように使用できますか?特にlAngleが必要です。

        past_edittext.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {
                    int height = past_edittext.getHeight();
                    int width = past_edittext.getWidth();
                    int top = past_edittext.getTop();
                    int left = past_edittext.getLeft();

                    // center coordinates of EditText
                    past_edittextX = left + width / 2;
                    past_edittextY = top + height / 2;
                    lAngle = (float) (Math
                            .atan((totalCenterY - past_edittextY)
                                    / (totalCenterX - past_edittextX)) * 180 / Math.PI);
                }
            });
4

1 に答える 1

1

クラスで次のことを宣言します

private float lAngle;

次に、globallayoutlistenerから設定した後、lAngleにアクセスできます。

...
past_edittext.getViewTreeObserver().addOnGlobalLayoutListener(
        new OnGlobalLayoutListener() {

            @Override
            public void onGlobalLayout() {
                int height = past_edittext.getHeight();
                int width = past_edittext.getWidth();
                int top = past_edittext.getTop();
                int left = past_edittext.getLeft();

                // center coordinates of EditText
                past_edittextX = left + width / 2;
                past_edittextY = top + height / 2;
                lAngle = (float) (Math
                        .atan((totalCenterY - past_edittextY)
                                / (totalCenterX - past_edittextX)) * 180 / Math.PI);
            }
        });
}

public void someOtherMethod(){
    if (lAngle != null)
        // do something...
于 2012-12-27T21:28:20.540 に答える