以编程方式将单选按钮文本添加到按钮顶部

Radio button text to top of the button programmatically

有没有办法像下面这样以编程方式将单选按钮的文本对齐到顶部。

我使用下面的代码创建了广播组

  final RadioButton[] rb = new RadioButton[5];
            RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
            rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
            rg.setLayoutParams(radioparams);

            for (int i = 0; i < 5; i++) {
                rb[i] = new RadioButton(getActivity());
                rb[i].setText("Radiobtn " + i);
                rb[i].setId(i + 100);
                rg.addView(rb[i]);

            }
            layout.addView(rg);

但我会在每个按钮的右侧获取文本。

试试这个方法你可以做一个技巧

像这样布局

<LinearLayout
    android:id="@+id/lnrView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="80dp"
    android:orientation="horizontal">


</LinearLayout>

而不是像这样以编程方式添加 RadioButton

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            LinearLayout layout = new LinearLayout(MainActivity.this);

            layout.setOrientation(LinearLayout.HORIZONTAL);
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);


            LinearLayout layout2 = new LinearLayout(MainActivity.this);
            layout2.setOrientation(LinearLayout.VERTICAL);
            LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);


            final ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            final TextView textView = new TextView(MainActivity.this);
            int id = 0;
            textView.setId(id);
            textView.setTextSize(14);
            textView.setTextColor(Color.rgb(0, 0, 0));
            textView.setMaxEms(2);
            textView.setText("NIlu");
            layout2.addView(textView);

            RadioButton radioButton = new RadioButton(MainActivity.this);
            layout2.addView(radioButton);
            layout.setLayoutParams(lp);

            lnrView.addView(layout2);


        }
    });
    final RadioButton[] rb = new RadioButton[5];
    RadioGroup rg = new RadioGroup(getActivity()); //create the RadioGroup
    rg.setOrientation(RadioGroup.VERTICAL);//or RadioGroup.VERTICAL
    rg.setLayoutParams(radioparams);

    for (int i = 0; i < 5; i++) {
        rb[i] = new RadioButton(getActivity());
        rb[i].setText("Radiobtn " + i);
        rb[i].setId(i + 100);
        rb[i].setButtonDrawable(null);

        TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {android.R.attr.listChoiceIndicatorSingle});
        int attributeResourceId = a.getResourceId(0, 0);
        Drawable drawable = getResources().getDrawable(attributeResourceId);

        rb[i].setCompoundDrawablesWithIntrinsicBounds(null, null, null, drawable);
        rb[i].setGravity(Gravity.CENTER | Gravity.BOTTOM);
        rg.addView(rb[i]);

    }
    layout.addView(rg);