有人可以提供帮助吗?
我只是从一些非常基本的android开发开始。我正在开发一个初始应用程序,以帮助我的女儿学习她的时间表。想法(在第一个版本中)会随机生成1到12之间的2个数字。然后单击计算按钮将给出答案。
我有它,以便它随机生成2个数字,但是,当我单击“计算”时,它不会计算,只是显示0。
我相信这与下一个方法(计算)看不到的变量(digit1和digit2)的值有关。如果我将2个数字硬编码到计算方法中,它将起作用。我只是不能随机生成数字来计算。
非常感激任何的帮助。
MainActivity.java:
package uk.co.myrayner.sophiestimestables;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int digit1;
int digit2;
int show_answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void randomise_digits(View view) {
Random rand1 = new Random();
int digit1 = rand1.nextInt(12) + 1;
displaydigit1(digit1);
Random rand2 = new Random();
int digit2 = rand2.nextInt(12) + 1;
displaydigit2(digit2);
}
public void calculate(View view) {
show_answer = (digit1 * digit2);
displayanswer(show_answer);
}
private void displaydigit1(int number) {
TextView digit1TextView = (TextView) findViewById(R.id.digit1);
digit1TextView.setText("" + number);
}
private void displaydigit2(int number) {
TextView digit2TextView = (TextView) findViewById(R.id.digit2);
digit2TextView.setText("" + number);
}
private void displayanswer(int number) {
TextView answerTextView = (TextView) findViewById(R.id.show_answer);
answerTextView.setText("" + number);
}
}
最佳答案
您需要做的就是在定义digit1和digit2之前删除“ int”,因此您的代码应如下所示:
package uk.co.myrayner.sophiestimestables;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int digit1;
int digit2;
int show_answer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void randomise_digits(View view) {
Random rand1 = new Random();
digit1 = rand1.nextInt(12) + 1;
displaydigit1(digit1);
Random rand2 = new Random();
digit2 = rand2.nextInt(12) + 1;
displaydigit2(digit2);
}
public void calculate(View view) {
show_answer = (digit1 * digit2);
displayanswer(show_answer);
}
private void displaydigit1(int number) {
TextView digit1TextView = (TextView) findViewById(R.id.digit1);
digit1TextView.setText("" + number);
}
private void displaydigit2(int number) {
TextView digit2TextView = (TextView) findViewById(R.id.digit2);
digit2TextView.setText("" + number);
}
private void displayanswer(int number) {
TextView answerTextView = (TextView) findViewById(R.id.show_answer);
answerTextView.setText("" + number);
}
}