0

我在这里有一个小问题。最后我有一个public String和一个return。return 应该得到值,所以我可以在另一个类中使用它,但这没有发生。从另一个类调用该字符串后,我想将 setText 设置为文本字段。我有一种感觉,好像我在 for 循环中遗漏了一些东西,但我可以看到什么?任何提示和答案都非常感谢:)

public String Question (String quesion)
    {
        RandomMathQuestionGenerator questionGenerator = new RandomMathQuestionGenerator();
        List<Question> randomQuestions = questionGenerator.getGeneratedRandomQuestions();
        for (Question question : randomQuestions) 
        {
            System.out.println(question);//prints questions
        }
        return quesion;
    }

在我的另一堂课上

String ArithmeticQuestion = null;
    ArithmeticQuestion = question.Question(ArithmeticQuestion);

    EditText editText = (EditText)findViewById(R.id.displayBox);
    editText.setText(ArithmeticQuestion);
4

2 回答 2

3

您将 null 传递给 Question(顺便说一句,方法和变量在 Java 中应以小写字母开头),Question 正在返回该 null,然后您将 null 分配回 ArithmeticQuestion。这可能不是你想要做的。

如果您想从列表中传回一个随机问题,您可以执行以下操作:

public String Question (String quesion)
{
    RandomMathQuestionGenerator questionGenerator = new RandomMathQuestionGenerator();
    List<Question> randomQuestions = questionGenerator.getGeneratedRandomQuestions();
    for (Question question : randomQuestions) 
    {
        System.out.println(question);//prints questions
    }
    Random random = new java.util.Random();
    return randomQuestions.get(random.nextInt(randomQuestions.size())).toString();
}

但是仍然没有使用问题,因此您可以将方法更改为无参数参数。

于 2013-03-04T02:57:17.677 回答
0

您从未在 Question 方法中使用过“问题”,因此它将返回 null,您应该根据您的要求更新您的方法。

您的程序违反了 N 种 java 编码实践,例如保留有意义的方法名称、变量名称等。

此外,您从 List 获取字符串的整个逻辑也丢失了。

于 2013-03-04T03:01:10.037 回答