我正在做一个数学测验,其中将以公式的形式提出一个数学问题。我把问题放在ArrayList中:

公共类DEasy扩展了AppCompatActivity {

private TextView countLabel;
private TextView questionLabel;
private Button answerBtn1;
private Button answerBtn2;
private Button answerBtn3;
private Button answerBtn4;

private String rightAnswer;
private int rightAnswerCount = 0;
private int quizCount = 1;
static final private int QUIZ_COUNT = 10;

ArrayList<ArrayList<String>> quizArray = new ArrayList<>();
String quizData[][] = {
        {"x", "1", "0", "x", "-1"},
        {"x²", "2x", "x", "2/x²", "2x²"},
        {"64", "0", "1", "64", "8"},
        {"x² + 5x", "2x + 5", "7x", "2x", "½x + 5"},
        {"19x", "19", "x", "0", "x + 19"},
        {"642", "34", "97", "5x-2", "1"}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_deasy);

    countLabel = (TextView) findViewById(R.id.countLabel);
    questionLabel = (TextView) findViewById(R.id.questionLabel);
    answerBtn1 = (Button) findViewById(R.id.answerBtn1);
    answerBtn2 = (Button) findViewById(R.id.answerBtn2);
    answerBtn3 = (Button) findViewById(R.id.answerBtn3);
    answerBtn4 = (Button) findViewById(R.id.answerBtn4);

    for (int i = 0; i < quizData.length; i++) {

        ArrayList<String> tmpArray = new ArrayList<>();
        tmpArray.add(quizData[i][0]);
        tmpArray.add(quizData[i][1]);
        tmpArray.add(quizData[i][2]);
        tmpArray.add(quizData[i][3]);
        tmpArray.add(quizData[i][4]);

        quizArray.add(tmpArray);
    }
    showNextQuiz();
}
public void showNextQuiz() {
    countLabel.setText( getString(R.string.question) + " " + quizCount + ".");

    Random random = new Random();
    int randomNum = random.nextInt(quizArray.size());

    ArrayList<String> quiz = quizArray.get(randomNum);

    questionLabel.setText(quiz.get(0));
    rightAnswer = quiz.get(1);

    quiz.remove(0);
    Collections.shuffle(quiz);

    answerBtn1.setText(quiz.get(0));
    answerBtn2.setText(quiz.get(1));
    answerBtn3.setText(quiz.get(2));
    answerBtn4.setText(quiz.get(3));

    quizArray.remove(randomNum);
}
public void checkAnswer(View view){
    Button answerBtn = (Button) findViewById(view.getId());
    String btnText = answerBtn.getText().toString();

    String alertTitle;

    if (btnText.equals(rightAnswer)){
        alertTitle = "Correct";
        rightAnswerCount++;
    }
    else {
        alertTitle = "Wrong";
    }

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(alertTitle);
    builder.setMessage("Answer: " + rightAnswer);
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            if (quizCount == QUIZ_COUNT){
                Intent intent = new Intent(getApplicationContext(), DResult.class);
                intent.putExtra("RIGHT_ANSWER_COUNT", rightAnswerCount);
                startActivity(intent);

            }
            else{
                quizCount++;
                showNextQuiz();
            }
        }
    });
    builder.setCancelable(false);
    builder.show();
}


}
如您所见,我试图使公式x ^ 2出现,它不会显示为x且指数为2,而是x ^ 2。这个x ^ 2不是我想要的。我如何在此arraylist中使用例如html来实现此目标。还是有另一种方法?

万分感谢!

最佳答案

在这里,用“∧”代替“ ^”。

因此,现在将在Adapter中访问此字符串数组的代码替换为:

  Html.fromHtml(quizArray[][])


谢谢,编码愉快

编辑:

在这里将其更改为:

   questionLabel.setText(Htm.fromHtml(quiz.get(0)));


就是会工作

10-06 01:34