下午遇到个问题因为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();
                            }
                    });
            }
    }