0

クイズアプリを開発し、オプションで問題を表示。

質問はHTML 形式のデータベースにあります。WebView を使用して Q&A を表示しています。

TextView を使用すると、Q&A 自体がきれいに表示されます。しかし、WebView を使用して Q&A を表示すると、質問の表示に時間がかかり、同時にオプションが繰り返し表示されます。

私のコード:

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 に何かを (1 回または繰り返し) 追加する場所はわかりませんが、含めたコードをより高速に実行するためのヒントを次に示します。

  • 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 に答える