下午遇到个问题因为RadioButton数量不固定,所以不能写进xml文件只能动态生成,
但是动态生成也有一个问题,就是如何判断当前选的RadioButton的position?
因为有一个列表数据与RadioButton绑定,点击RadioButton的时候需要改变其他组件的值
这时需要从list中取值,如何才能知道点击这个RadioButton的position呢?
代码如下:
/**
*
* @author wszf
*
* RadioGroup
* 2011-11-14下午09:01:19
*
*/
public class MainActivity extends Activity
{
private RadioGroup radioGroup;
private HashMap<Integer, Integer> radioMap=new HashMap<Integer, Integer>();
private String[] strs={"早上","中午","下午","傍晚","夜晚"};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
radioGroup=(RadioGroup) findViewById(R.main.radioGroup);
for(int i=0;i<strs.length;i++)
{
RadioButton radioButton=new RadioButton(this);
radioButton.setText(strs[i]);
radioGroup.addView(radioButton);//将radioButton添加到radioGroup中
radioMap.put(radioButton.getId(), i);//将radioButton的id与position以键值对的方式保存(如果radioButton没有add到radioGroup中,那么radioButton的getId()得到的值为-1)
}
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
int position=radioMap.get(checkedId);//通过匹配radioButton的id来或得position
Toast.makeText(MainActivity.this, strs[position], Toast.LENGTH_SHORT).show();
}
});
}
}