0

开发测验应用程序,显示带有选项的问题。

这些问题以HTML 格式保存在数据库中。使用 WebView 我正在显示问答。

当我使用 TextView 时,问答会整齐地显示出来。但是当我使用WebView显示问答时,显示问题需要很长时间,同时它会重复显示选项

我的代码:

static ArrayList<ArrayList<String>> stringList;
static ArrayList<String> optionlist;

webView = (WebView) findViewById(R.id.question);
webView.getSettings().setJavaScriptEnabled(true);

webView.loadData(listItem.getquestion(), "text/html", "UTF-8");
webView.getSettings().setDefaultFontSize(14);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

RadioGroup radiogroup = (RadioGroup) findViewById(R.id.radiogroup);

LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
        RadioGroup.LayoutParams.WRAP_CONTENT,
        RadioGroup.LayoutParams.WRAP_CONTENT);

for (int i = 0; i < stringList.size(); i++) {
    optionlist = new ArrayList<String>();
    optionlist = stringList.get(i);

    RadioButton newRadioButton = new RadioButton(this.getContext());

    newRadioButton.setText(optionlist.get(2));
    newRadioButton.setTextColor(Color.parseColor("#000000"));

    radiogroup.addView(newRadioButton, layoutParams);
}
4

1 回答 1

0

我看不到您向 WebView 添加任何内容的位置(一次或多次),但这里有一些指针可以使您包含的代码运行得更快:

  • 使用 for-each 循环,它们更快更容易。
  • 删除新的 ArrayList 声明,因为在下一行中,您只需用现有的 ArrayList 覆盖它

像这样:

for (ArrayList<String> currentList : stringList) {
    RadioButton newRadioButton = new RadioButton(this.getContext());
    newRadioButton.setText(currentList.get(2));
    newRadioButton.setTextColor(Color.parseColor("#000000"));

    radiogroup.addView(newRadioButton, layoutParams);
}
于 2012-05-29T18:37:00.887 回答