如何在android中以编程方式在按钮左侧创建带文本的单选按钮?

时间:2014-06-30 06:28:27

标签: android

我在xml:

的按钮左侧创建了带有文本的单选按钮
<RadioButton
    android:id="@+id/radio_sattelite1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:button="@null"
    android:checked="true"
    android:drawableRight="@android:drawable/btn_radio"
    android:gravity="center_vertical"
    android:onClick="onRadioButtonClicked"
    android:text="@string/sattelite1" />

出于某种原因,我必须在我的java代码中创建其中一些,但我无法按上述方式设计它。

编辑: 在我的朋友@Hariharan和@Haresh的帮助下,我最终得到了这段代码:

Drawable drawable = getResources().getDrawable(android.R.drawable.btn_radio);
drawable.setBounds(0, 0, 57, 72);
radioButton.setCompoundDrawables(null, null, drawable, null);

但现在问题是左右两个按钮都出现了。

4 个答案:

答案 0 :(得分:5)

试试这个..

yourradiobutton.setCompoundDrawables(drawable_left, drawable_top, drawable_right, drawable_bottom);

修改

    RadioButton radioButton = new RadioButton(this);
    radioButton.setText("sattelite1");
    Drawable drawable = getResources().getDrawable(android.R.drawable.btn_radio);
    drawable.setBounds(0, 0, 57, 72);
    radioButton.setCompoundDrawables(null, null, drawable, null);
    radioButton.setGravity(Gravity.CENTER_VERTICAL);
    radioButton.setChecked(true);
    radioButton.setButtonDrawable(android.R.color.transparent);
    radioButton.setBackgroundDrawable(null);

答案 1 :(得分:1)

试试这种方式,希望这可以帮助您解决问题

        RadioButton radioButton = new RadioButton(this);
        radioButton.setText("sattelite1");
        radioButton.setCompoundDrawables(getResources().getDrawable(R.drawable.ic_launcher), null, null, null);
        radioButton.setGravity(Gravity.CENTER_VERTICAL);
        radioButton.setChecked(true);
        radioButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });   

答案 2 :(得分:0)

不是向单选按钮添加文本,而是可以做一件事,在水平方向的线性布局中,首先添加一个textview,然后添加下一个没有文本的单选按钮,如下所示:

<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal">
<TextView  android:layout_width="wrap_content" android:layout_height="wrap_content" text="button text" >
</TextView>
<RadioButton
    android:id="@+id/radio_sattelite1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:onClick="onRadioButtonClicked"/>
</LinearLayout>

答案 3 :(得分:0)

最后,我得到了stackoverflow fellas的帮助:

radioButton.setGravity(Gravity.CENTER_VERTICAL);
Drawable drawable = getResources().getDrawable(android.R.drawable.btn_radio);
drawable.setBounds(0, 0, 57, 72);
radioButton.setButtonDrawable(R.drawable.empty);
radioButton.setCompoundDrawables(null, null, drawable, null);

那么R.drawable.empty是什么?这是一个没有背景的png文件,你必须创建它。

谢谢....