我试图在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");
}});
}
}
答案 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)
存在许多问题 - 第一个问题是您没有正确调用您正确创建的方法。
更改addition.calc();
to additionCalc();
调用该方法将为您执行 nothing 。它将在该方法中添加数字,但变量是该方法的本地变量,因此onCreate
中不会发生任何变化。
要使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
}
要使用此方法,您可以使用addquestion.setText("" + a, b);
代替addquestion.setText("" + additionCalc());
a
并将文本设置为总和。
如果您想在b
方法中使用onCreate
和/或{{1}},则必须在该方法中声明它们。