Android:如何更改动态创建的单选按钮的文本大小?

时间:2015-01-27 19:50:57

标签: android radio-button text-size

我没有在堆栈溢出中找到任何有关此问题的解决方案,这就是我在此处发布的原因。我正如下动态创建单选按钮。

RadioButton rb;

//generating radio buttons
for (int i = 0; i < 5; i++) {
    rb = new RadioButton(this);
    rb.setText(question.getOptions().get(i));
    rb.setTextColor(getResources().getColor(R.color.rbTextColor));
    rb.setId(i);
    rg.addView(rb);
}

它工作得非常好,但现在我想通过代码来改变单选按钮文本的文本大小,根据我的不理解,这应该是这样的。

rb.setTextSize(20);

但它现在正在工作,因为单选按钮没有此属性。那么请帮助我如何更改android中单选按钮文本的大小?

非常感谢任何帮助。

谢谢,

momersaleem

3 个答案:

答案 0 :(得分:3)

您使用文字外观如下:

    RadioButton rb;

    //generating radio buttons
    for (int i = 0; i < 5; i++) {
        rb = new RadioButton(context);
        rb.setText("");
        rb.setTextColor(getResources().getColor(R.color.rbTextColor));
        rb.setId(i);
        rb.setTextAppearance(context, android.R.style.TextAppearance_Large);
    }

答案 1 :(得分:1)

在xml文件中,在单选按钮视图中添加以下行

android:textAppearance="?android:attr/textAppearanceLarge"

答案 2 :(得分:0)

使用Kotlin,我使用了以下内容:

  1. 用于样式化的内置扩展文件:
  2. RadioButtonExt.kt

    fun RadioButton.StyleMe() {
        this.setTextAppearance(android.R.style.TextAppearance_Holo_Medium)
        this.setPaddingRelative(10,0,0,0)
        this.setPadding(30,0,0,0)
        }
    

    然后将我的元素构建为:

    myRadioButons.kt

    import android.content.Context
    import android.support.v7.widget.CardView
    import android.view.Gravity
    import android.widget.*
    
    import android.widget.LinearLayout
    import oryx.tecna.locateme.extensons.StyleMe
    
    class Gender : CardView {
        lateinit var m: RadioButton
        lateinit var f: RadioButton
    
        constructor(context: Context) : super(context) {
            init(context)
        }
    
        private fun init(context: Context) {
    
            val parent = LinearLayout(context)
            m = RadioButton(context).apply {
                text = "Male"
                StyleMe()
            }
            f = RadioButton(context).apply {
                text = "Female"
                StyleMe()
            }
    
            var keywordAction = RadioGroup(context).apply {
                addView(m)
                addView(f)
                check(m.id)
            }
    
            parent.apply {
                layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                        LinearLayout.LayoutParams.WRAP_CONTENT).apply {
                    orientation = LinearLayout.VERTICAL
                    gravity = Gravity.CENTER
    
    
                    addView(keywordAction).apply {
                        id = generateViewId()
                        layoutParams = LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                                LinearLayout.LayoutParams.WRAP_CONTENT).apply {
                        }
                    }
                }
            }
            this.apply {
                addView(parent)
            }
        }
    }
    

    MainActivity.kt我称之为:

    val gender = Gender(this).apply {
        id = generateViewId()
    }
    
    gender.m.setOnClickListener {
        // Do something
    }