1

次のスクリーンショットに示されているものではなく、ラジオボタンのテキストを左に、ボタンを右にプログラムで揃えようとしています

通常のラジオボタン

RelativeLayout を動的に作成し、textview と radiobtn (テキストなし) を配置しようとしましたが、すべての試行が失敗しました:(

ここに、実行しようとして調整できなかったコードを投稿します。

        RelativeLayout relLay = new RelativeLayout(this);
        relLay.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

        TextView textView=new TextView(this);
        textView.setText(device.getName());
        textView.setGravity(Gravity.LEFT);  

        RadioButton radioBtn= new RadioButton(this);
        radioBtn.setText(" ");
        radioBtn.setTag(device);
        radioBtn.setChecked(false);
        radioBtn.setGravity(Gravity.RIGHT); 

        RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

        lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

        lp2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,RelativeLayout.TRUE);

        relLay.addView(textView,lp1);
        relLay.addView(radioBtn,lp2);
        radioGr.addView(relLay);

また、ScrollView に含まれているラジオグループに相対レイアウトを追加していることにも注意する必要があります。

どうぞよろしくお願いいたします。

4

1 に答える 1

0

次のコードを使用できます。

RelativeLayout relLay = new RelativeLayout(this);
            relLay.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            relLay.setGravity(Gravity.RIGHT);
            TextView textView=new TextView(this);
            textView.setText("good");
            textView.setGravity(Gravity.RIGHT);  
            RadioButton radioBtn= new RadioButton(this);
            radioBtn.setChecked(false);
            radioBtn.setId(125); //you must setid for radioBtn

            RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

          lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
            RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(
                 RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            lp1.addRule(RelativeLayout.ALIGN_BASELINE,radioBtn.getId());
          lp1.addRule(RelativeLayout.LEFT_OF,radioBtn.getId());
            lp2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
            relLay.addView(radioBtn,lp2);
            relLay.addView(textView,lp1);
            this.setContentView(relLay);
于 2012-12-17T04:43:56.400 に答える