2010-06-14 3 views
1

Если бы я хотел ссылаться на int из другого класса, как бы я это сделал?ссылка на ints из других классов

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'ами. –

+0

Я знаю, как настроить контроллер, я изменил его, поэтому я бы не стал смешивать с ним зум-контроллеры, как для отступов, я не знаю, как отправлять код на этом сайте ... мой код выглядит намного приятнее – user357032

ответ

6

Вам нужно создать геттер в первом классе, что-то вроде.

public int getZoomController() 
{ 
    return zoomController; 
} 

И в вашем слушателе это было бы.

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

спасибо !!!! jsmith работает как шарм – user357032

1

Хотя @ JSmith Ответим рекомендуемый подход, тот факт, что (так) атрибут zoomControler является общественным означает, что вы можете сделать это:

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

или даже

((Zoom) arg0).zoomControler = z; 

Однако доступ к таким атрибутам, как это, является плохим стилем, и даже выявление атрибутов - плохой стиль. Вероятно, вы должны изменить zoomControler на private, чтобы другие классы имели доступ к нему через геттеры и сеттеры.

Смежные вопросы