3

サーバーからタスクとサブタスクのリストをダウンロードし、各項目に新しいチェックボックスを作成して線形レイアウトに追加するタスク マネージャー アプリを作成しています (以下では ll と呼びます)。私が抱えている問題は、XML のように Java を使用して「レイアウト マージン左」を設定できないことです (これは、サブタスクが画面上で少しインデントするためのものです)。他のほとんどの xml プロパティを設定できますが、cb.setMargins() は機能しません (タイプ チェックボックスが undefined と表示されます)。もちろん、パディングを設定しても、望ましい結果は得られません。

for(int i=0;i<tasks.size();i++) {
CheckBox cb = new CheckBox(this);
cb.setText(tasks.get(i).subtask_desc);
cb.setButtonDrawable(R.drawable.checkbox_xml);
ll.addView(cb);
    }

何かアイデアや、これをどのように処理しますか?

4

2 に答える 2

11

正しい LayoutParams を使用して LinearLayout にチェックボックスを追加する必要があると思います。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);

それが役立つことを願っています!

于 2010-10-30T14:31:48.093 に答える
1

こんにちはこれを試してみてください...

    private LinearLayyout ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    params.leftMargin = 123;;
    CheckBox cb;
    for(int i = 0; i < 10; i++) {
        cb = new CheckBox(this);
        cb.setText(categoryListArray[i]);
        ll.addView(cb, ll);
    }
于 2011-07-19T06:59:17.310 に答える