如何从代号为单位的单选按钮组获取当前单选按钮索引值?

时间:2017-04-04 13:09:18

标签: codenameone

我有一些单选按钮放在单选按钮组中。 那么,当我要点击特定的单选按钮时,如何获得单选按钮索引值或选定的索引值。

这是我的代码

 bg=new ButtonGroup();
 for(i=0;i<8;i++){
 rbt =new RadioButton();
 rbt.setName("rbt"+i);
 radioList.add(rbt);
 }
 for(int i=0;i<radioList.size();i++){
  radioList.get(i).addPointerPressedListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent evt) {
                            for(int i=0;i<radioList.size();i++){
                                  Log.p("================"+bg.getSelectedIndex);
                            }
                        }
                    }); 
 }

在上面的代码中,我得到的是先前选择的值而不是当前值。值

先谢谢

2 个答案:

答案 0 :(得分:1)

在单选按钮处理事件之前调用

pointerPressed。使用addActionListener代替,在状态更改后触发,因此所选索引应该是当前选择的单选按钮。

答案 1 :(得分:1)

您应该在容器和buttongroup中添加radiobutton并调用buttongroup的getselectedIndex以获取当前索引,如下面的代码所示

void testRadio(Form form) {
        Container radioList = new Container(new BoxLayout(BoxLayout.Y_AXIS));
        ButtonGroup bg = new ButtonGroup();
        for (int i = 0; i < 8; i++) {
            RadioButton rbt = new RadioButton();
            rbt.setName("rbt" + i);
            rbt.setText("rbt" + i);
            **radioList.add(rbt);
            bg.add(rbt);**
        }
        bg.setSelected(0);
        form.add(radioList);
        Button getIndexButton = new Button("Get Radio Index");
        getIndexButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent evt) {
//                throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                Log.p("================" + bg.getSelectedIndex());
            }
        });
        form.add(getIndexButton);

    }