2010-06-14 99 views
1

如果我想從另一個類我怎麼會去這樣做引用一個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

你真的應該把一些精力來格式化你的代碼。一致的縮進和間距使代碼*更加可讀。代碼中的拼寫錯誤也令人厭煩:它是兩個L的「控制器」。 – 2010-06-14 02:37:33

+0

我知道如何拼寫控制器我改變了,所以我不會得到zoomcontrols與它混合起來作爲我不知道如何在本網站發佈的代碼縮進...我的代碼看起來 – user357032 2010-06-14 02:45:19

回答

6

您需要創建一流像一個getter。

public int getZoomController() 
{ 
    return zoomController; 
} 

而在你的聽衆中它會是。

((Zoom) arg0).getZoomController(); 
+0

感謝好得多!!!! jsmith它就像一個魅力 – user357032 2010-06-14 02:46:38

1

雖然@ jsmith的答案是推薦的方法,該事實zoomControler(原文如此),屬性是公共交通工具,你也可以這樣做:

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

甚至

((Zoom) arg0).zoomControler = z; 

但是,像這樣訪問屬性是不好的風格,甚至暴露屬性是不好的風格。你或許應該改變zoomControlerprivate所以必須通過getter和setter訪問它,其他類。