2015-07-03 4 views
-2

Я знаю, что это Вызов методов в Java и до вопроса, я прочитал о Java грамматики очень much.I знаю, что это это в Java, но я не знаете, как вызывается следующий код в MainActivity. javaВызов методов в Java

public void onDraw(Canvas canvas) { 
    paint.setColor(Color.BLUE); 
    canvas.drawCircle(120,120,40,paint); 
} 

Теперь. Я поставил полный код:

MainActivity.java

public class MainActivity extends Activity { 
    Draw draw; 
    Cal cal; 
    TextView textView; 
    RelativeLayout linearLayout; 

    public void onCreate(Bundle s) { 
     super.onCreate(s); 
     setContentView(R.layout.activity_main); 

     linearLayout = (RelativeLayout) findViewById(R.id.t); 
     cal = new Cal(this); 
     cal.cal(); 

     textView = new TextView(getApplicationContext()); 
     textView.setText("" + cal.result); 
     textView.setTextColor(Color.RED); 

     draw = new Draw(this); 
     linearLayout.addView(textView); 
     linearLayout.addView(draw); 
    } 
} 

Cal.java

public class Cal extends View { 
    Cal(Context context){ 
     super(context); 
    } 
    public double result; 
    double parameter = (Math.pow(40,2)) * 3.14; 
    public void cal(){ 
     result = Math.sqrt(parameter); 

    } 
} 

Draw.java

public class Draw extends View { 
Paint paint = new Paint(); 
    Draw(Context context) { 
     super(context); 
    } 
    public void onDraw(Canvas canvas) { 
     paint.setColor(Color.BLUE); 
     canvas.drawCircle(120,120,40,paint); 
    } 
} 

public void cal(){ result = Math.sqrt(parameter);} вызывается cal.cal();в MainActivity Но я не знаю, как вызывается

public void onDraw(Canvas canvas) { 
    paint.setColor(Color.BLUE); 
    canvas.drawCircle(120,120,40,paint); 
} 

в MainActivity.java ?? в MainActivity.java, у нас есть только draw = new Draw(this); для вызова Draw(Context context) {super(context);} в Draw.java

+0

Я не понимаю, в чем ваш вопрос, пожалуйста, можете ли вы объяснить дальше? – ConMan

ответ

0

Вашего класса Draw расширяет андроид класса View.

Вы добавляете вид на макете в onCreateMethod():

linearLayout.addView(draw); 

Android будет вызывать метод OnDraw() в графическом объекте при визуализации представления.

+0

Спасибо. Cal. java также расширяет представление класса Android. то почему мы должны использовать «cal.cal()»; для вызова метода call()? – android

+0

Поскольку ваш класс Draw переопределяет метод класса View: 'public void onDraw (Canvas c)'. В вашем классе «Cal» метод «cal()» - это метод вашего класса, и вам нужно вызвать этот метод самостоятельно. –

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