从公共方法保存字符串

时间:2016-10-12 17:45:13

标签: java android string

已删除的问题 此问题已被G.M删除,因为已经回答

3 个答案:

答案 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);

}

另请查看Java Naming Conventions

答案 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;