已删除的问题 此问题已被G.M删除,因为已经回答
答案 0 :(得分:3)
您已将StringResultOfEquation
声明为局部变量,其范围仅限于generate()
方法。
最简单的解决方案可能是通过在StringResultOfEquation
方法之外移动其声明来使generate()
成为实例变量:
String StringResultOfEquation;
public void generate(View view) {
Random random = new Random();
int numOfOperations = random.nextInt(2) + 1;
List<String> operations = new ArrayList<>();
for (int i = 0; i < numOfOperations; i++) {
String operation = operationSet[random.nextInt(4)];
operations.add(operation);
}
int numOfNumbers = numOfOperations + 1;
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < numOfNumbers; i++) {
int number = random.nextInt(10) + 1;
numbers.add(number);
}
String equation = "";
for (int i = 0; i < numOfOperations; i++) {
equation += numbers.get(i);
equation += operations.get(i);
}
equation += numbers.get(numbers.size() - 1);
TextView TextEquation = (TextView) findViewById(R.id.textView);
TextEquation.setText(equation);
StringResultOfEquation = String.valueOf(equation);
}
答案 1 :(得分:0)
您可以通过String StringResultOfEquation
方法声明generate()
,通过这样做,分配给 StringResultOfEquation 的值将被类中的其他方法看到。
答案 2 :(得分:-3)
String[] operationSet = new String[]{"+", "-", "/", "*"};
public static String StringResultOfEquation ;
public void generate(View view) {
Random random = new Random();
int numOfOperations = random.nextInt(2) + 1;
List<String> operations = new ArrayList<>();
for (int i = 0; i < numOfOperations; i++) {
String operation = operationSet[random.nextInt(4)];
operations.add(operation);
}
int numOfNumbers = numOfOperations + 1;
List<Integer> numbers = new ArrayList<>();
for (int i = 0; i < numOfNumbers; i++) {
int number = random.nextInt(10) + 1;
numbers.add(number);
}
String equation = "";
for (int i = 0; i < numOfOperations; i++) {
equation += numbers.get(i);
equation += operations.get(i);
}
equation += numbers.get(numbers.size() - 1);
TextView TextEquation = (TextView) findViewById(R.id.textView);
TextEquation.setText(equation);
StringResultOfEquation = String.valueOf(equation);
}
//如果你想在另一个类中使用StringResultOfEquation变量,就这样做
参加其他课程,例如ABC
String name=firstclassname.StringResultOfEquation;