【问题标题】:Add radio group to Table LAyout, android?将单选组添加到 Table LAyout,android?
【发布时间】:2014-01-08 18:08:52
【问题描述】:

这是我想要通过 java 代码动态创建的布局。 这里的父布局是LinearLayout。

通过java代码创建的tableLayout由5个动态创建的单选按钮组成。

我需要将这些单选按钮放在单选组中。 如何做到这一点。

到目前为止,我尝试了这个,效果很好。但我无法在 1 个单选组中添加所有 5 个单选按钮。

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    l = (LinearLayout) findViewById(R.id.mainl); //parent layout

    t1 = new TableLayout(this);

    rb1 = new RadioButton(this);
    rb2 = new RadioButton(this);
    rb3 = new RadioButton(this);

    t1.setLayoutParams(new TableLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    TableRow row = new TableRow(this);
    TableRow row1 = new TableRow(this);

    row.addView(rb1);
    row.addView(rb2);
    row1.addView(rb3);

    t1.addView(row);
    t1.addView(row1);
    l.addView(t1);

}

【问题讨论】:

    标签: android tablelayout


    【解决方案1】:

    我找不到您对 RadioGroup 的声明。

    你需要这样的东西:

    ...
    
    RadioGroup rg = new RadioGroup(this);
    rg.setOrientation(RadioGroup.HORIZONTAL);
    
    rg.addView(rb1);
    rg.addView(rb2);
    rg.addView(rb3);
    
    row.addView(rg);
    
    ...
    

    【讨论】:

    • 这不是我想要的,在第 1 行 2 单选按钮,在第 2 行 2 单选按钮,在第 3 行 1 单选按钮。将所有这些单选按钮添加到单选组
    【解决方案2】:

    RadioGroup 继承自 LinearLayout。您必须创建自己的 RadioGroup 实现,该实现继承自 TableLayout。

    如果您检查RadioGroup 的source code,您会看到它只是跟踪RadioButton 的子视图,并确保只检查其中一个。除此之外,如果选中 RadioButton 更改,它会提供一个侦听器。

    您可以尝试修改源以使其从TableLayout 等扩展。

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2015-01-10
      • 2023-04-07
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2017-07-11
      相关资源
      最近更新 更多