如何从另一个方法调用方法

时间:2014-01-15 03:07:57

标签: java android

我试图在onCreate线程内调用onCreate的方法。然而,它说该方法无法解决。我知道该方法不能在onCreate线程内部,所以如何从中调用方法。这是我的课程代码。

package com.alarm.mobilegame;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class startGames extends MainActivity {

public void additionCalc() {
    int Min = 1;
    int Max = 99;
    int a = Min + (int)Math.random()*(Max-Min);
    int b = Min + (int)Math.random()*(Max-Min);
    int c = (int) a + b;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start_game1);

    Button buttonMathStart = (Button) findViewById(R.id.button1);
    buttonMathStart.setOnClickListener(new OnClickListener() {            
        public void onClick(View v) {
            TextView addquestion;
            TextView subquestion;
            TextView divquestion;
            TextView mulquestion;
            addition.calc();
            addquestion = (TextView) findViewById(R.id.textView1);
            addquestion.setText("" + a, b);
            subquestion = (TextView) findViewById(R.id.textView2);
            subquestion.setText("sub");
            divquestion = (TextView) findViewById(R.id.textView3);
            divquestion.setText("div");
            mulquestion = (TextView) findViewById(R.id.textView4);
            mulquestion.setText("mul");
        }});
}

}

2 个答案:

答案 0 :(得分:1)

你可以像这样调用onCreate中的方法:

示例:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.example);
    myMethod(); //Any parameters you need in the method can be passed through the parentheses
}

myMethod(){
//Do stuff in here
}

在您的情况下,您应该将此行放在onCreate()中以调用方法:

additionCalc();

答案 1 :(得分:0)

存在许多问题 - 第一个问题是您没有正确调用您正确创建的方法。

  1. 更改addition.calc(); to additionCalc();

  2. 调用该方法将为您执行 nothing 。它将在该方法中添加数字,但变量是该方法的本地变量,因此onCreate中不会发生任何变化。

  3. 要使additionCalc()有用,请加上return加法计算。例如:

    public int additionCalc() { // not void anymore - it returns an int
        int Min = 1;
        int Max = 99;
        int a = Min + (int)Math.random()*(Max-Min);
        int b = Min + (int)Math.random()*(Max-Min);
        int c = (int) a + b;
        return c; // return the sum
    }
    
  4. 要使用此方法,您可以使用addquestion.setText("" + a, b);代替addquestion.setText("" + additionCalc()); a并将文本设置为总和。

  5. 如果您想在b方法中使用onCreate和/或{{1}},则必须在该方法中声明它们。