0

私はいくつかのチェックボックスを動的に追加しているLinearLayoutを持っています、それらは最初の呼び出しで完全にうまく追加されています、私が異なる値で同じメソッドを呼び出しているとき、それらはそのLinearLayoutに表示されません、古い値は新しいものに置き換えられません値。

LogCatで値を確認しましたが、渡したものはすべてLogCatに表示されていますが、LinearLayoutには表示されていません。

ビューを追加する私の方法は次のとおりです。

private void setOptions(int questionID2) {
        ArrayList<String> options = pustakDB.getOptions(questionID2);
        Log.e("optionsInAct", options.toString() + " size " + options.size());

        OptionView = new LinearLayout(this);
        OptionView.setOrientation(LinearLayout.VERTICAL);
        RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        p.addRule(RelativeLayout.BELOW, img.getId());
        p.addRule(RelativeLayout.RIGHT_OF, questionNumber.getId());
        rel.addView(OptionView, p);

        int i = 0;
        while (i < options.size()) {
            CheckBox c = new CheckBox(this);
            c.setText(options.get(i));
            c.setId(i);
            OptionView.addView(c);
            i++;
        }
    }

編集:ここでの「rel」はRelativeLayoutです。

4

1 に答える 1

1
    // put this somewhere else
    OptionView = new LinearLayout(this);
    OptionView.setOrientation(LinearLayout.VERTICAL);
    RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    p.addRule(RelativeLayout.BELOW, img.getId());
    p.addRule(RelativeLayout.RIGHT_OF, questionNumber.getId());
    rel.addView(OptionView, p);


private void setOptions(int questionID2) {
    ArrayList<String> options = pustakDB.getOptions(questionID2);
    Log.e("optionsInAct", options.toString() + " size " + options.size());

    // this will remove all views from OptionView
    OptionView.removeAllViews();

    int i = 0;
    while (i < options.size()) {
        CheckBox c = new CheckBox(this);
        c.setText(options.get(i));
        c.setId(i);
        OptionView.addView(c);
        i++;
    }
}

これを試して、機能するかどうかを確認してください。

于 2012-10-01T08:25:25.573 に答える