java - ArrayList 中的 Android Studio html View

标签 java android arraylist

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

公共(public)类 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,这不会显示为带有小指数 2 的 x,而是显示为 x^2。这个 x^2 不是我想要的。我如何在这个数组列表中使用例如 html 来实现这个目标。还是有别的办法?

谢谢阿顿!

最佳答案

这里我们可以用“∧”代替“^”。

现在将适配器中访问此字符串数组的代码替换为:

  Html.fromHtml(quizArray[][])

谢谢,编码愉快

编辑:

这里改成:

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

只要它会起作用

关于java - ArrayList 中的 Android Studio html View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47583261/

相关文章:

android - 从源代码为 android 构建 libxml2 作为静态库

java - 安卓编码 "Simon";很难暂停代码

Java For 数组列表中的循环

java - ArrayList.Remove 在第一次调用时不起作用

java - 具有 Or 条件的正则表达式?

java - 如何自定义 BoxAndWhisker 图的图例

Android Volley Https SSL 自签名和 Google Maps API

Java AudioSystem .wav 文件行为差异

java - 如何使这个 Java 方法变得通用

Java 方法重载作为组合的用户输入