我有一些单选按钮放在单选按钮组中。 那么,当我要点击特定的单选按钮时,如何获得单选按钮索引值或选定的索引值。
这是我的代码
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);
}
}
});
}
在上面的代码中,我得到的是先前选择的值而不是当前值。值
先谢谢
答案 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);
}