界面少控件的情况的下,我们往往采用在xml布局文件里面写页面代码。可遇到十几个输入框或者十几个点选按钮时候,我们就需要考虑动态生成控件的方法了。控件动态生成容易,但是控制这些控件的取值和赋值则没那么容易。我们需要掌握一些规律。下面就拿RadioGroup点选按钮组来举例说明吧。
首先要在页面上生成一个动态的直线布局对象LinearLayout layoutmain=new LinearLayout(this);
假如你要生成十组RadioGroup,代码可以如下:
for(int i=0;i<10;i++)
{
RadioGroup groupmain=new RadioGroup(this);
groupmain.setOrientation(LinearLayout.HORIZONTAL);//设置为竖直排列
for(int j=0;j<5;j++)
{
RadioButton radio = new RadioButton(this);
if(j==0)
{
radio.setText("东邪");
}
if(j==1)
{
radio.setText("西毒");
}
if(j==2)
{
radio.setText("南帝");
}
if(j==3)
{
radio.setText("北丐");
}
if(j==4)
{
radio.setText("中神通"):
}
groupmain.addView(radio);
}
layoutmain.addView(groupmain);
}
下面是取值:
String [] index=new String[10];
for(int i=0;i<10;i++)
{
RadioGroup choiseGroup= (RadioGroup) Linearlayout.getChildAt(i);
int radiobuttonId = choiseGroup.getCheckedRadioButtonId();
for( int j = 0;j < choiseGroup.getChildCount(); j++ )
{
RadioButton radiobt = (RadioButton) choiseGroup.getChildAt(k);
if(radiobt.getId()==radioId)
{
index[i]=j;
}
}
}