引用其他类的int

时间:2010-06-14 02:28:56

标签: java android

如果我想从另一个类引用一个int,我该怎么做呢?

public class Zoom extends View {
    private Drawable image;
    public int zoomControler = 20;

    public Zoom(Context context) {
        super(context);
        image=context.getResources().getDrawable(R.drawable.icon);
        setFocusable(true);      
    }

    @Override            
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        image.setBounds((getWidth ()/2)-zoomControler,
                        (getHeight()/2)-zoomControler,
                        (getWidth ()/2)+zoomControler,
                        (getHeight()/2)+zoomControler);
        image.draw(canvas);
    }
}

class HelloOnTouchListener implements OnTouchListener{
    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        return true;
    }
}

在这种情况下,我想引用第二个zoomControler类中第一个类的HelloOnTouchListener

2 个答案:

答案 0 :(得分:6)

您需要在第一个类中创建一个类似于。

的getter
public int getZoomController()
{
    return zoomController;
}

在你的听众中它会是。

((Zoom) arg0).getZoomController();

答案 1 :(得分:1)

虽然@ jsmith的答案是推荐的方法,但zoomControler(sic)属性是公共的这一事实意味着你也可以这样做:

int z = ((Zoom) arg0).zoomControler;

甚至

((Zoom) arg0).zoomControler = z;

然而,访问这样的属性是不好的风格,甚至暴露属性也是不好的风格。您应该将zoomControler更改为private,以便其他类必须通过getter和setter访问它。