如果我想从另一个类引用一个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
。
答案 0 :(得分:6)
您需要在第一个类中创建一个类似于。
的getterpublic 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访问它。