如何获取RadioGroup中RadioButton的值

如何获取RadioGroup中RadioButton的值,第1张

1,获取RadioGroup控件:

RadioGroup radioGroup = (RadioGroup)findViewById(RidmyRadioGroup);

2,获取RadioButton控件;

RadioButton radioButton = (RadioButton)findViewById(radioGroupgetCheckedRadioButtonId());

3,获取选中的radio的值:

String text = radioButtongetText()toString();

4,为radioGroup添加监听事件,用来监听组件内部的事件响应:

radioGroupsetOnCheckedChangeListener(new RadioGroupOnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

//在这个函数里面用来改变选择的radioButton的数值,以及与其值相关的 //任何 *** 作,详见下文

selectRadioBtn();

}

})

;

5,在onCreat中需要初始化上面的四条信息;

6,整体的使用样例:

布局文件xml中的内容:

<RadioGroup

android:id="@+id/sex_group"

android:layout_width="match_parent"

android:layout_height="wrap_content">

<RadioButton

android:id="@+id/male"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:checked="true"

android:text="男"/>

<RadioButton

android:id="@+id/female"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="女"/>

</RadioGroup>

代码实现:

private RadioGroup mSex_group;

private RadioButton mMale;

private RadioButton mFemale;

private String sexName;

mSex_group = (RadioGroup) findViewById(Ridsex_group);

mMale = (RadioButton) findViewById(Ridmale);

mFemale = (RadioButton) findViewById(Ridfemale);

mSex_groupsetOnCheckedChangeListener(new RadioGroupOnCheckedChangeListener() {

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

if (mMalegetId() == checkedId) {

sexName = mMalegetText()toString();

} else if (mFemalegetId() == checkedId) {

sexName = mFemalegetText()toString();

}

}

});

设置一个变量int whichEditText=0;在RadioGroup的监听事件中设置whichEditText的值

// RadioGroup的监听事件

@Override

public void onCheckedChanged(RadioGroup group, int checkedId) {

if (checkedId == rb_1getId()) {

whichEditText= 1;

} else if (checkedId == rb_2getId()) {

whichEditText= 2;

} else if (checkedId == rb_3getId()) {

whichEditText = 3;

} else if (checkedId == rb_4getId()) {

whichEditText= 4;

}else if (checkedId == rb_5getId()) {

whichEditText= 5;

}

}

然后再在确认按钮的监听事件中,用switch语句根据whichEditText的值来选择获取哪个EditText的值

1、笨办法1

每一行保存一个button的指针,然后在slot里遍历每一行的button是否等于sender。

2、笨办法2

做一个QPushButton的派生类,保存一个行号,emit 一个消息,把这个行号作为参数穿过去。

3、变通的办法

使用QButtonGroup,addButton的时候可以传递一个行号进去,消息里根据这个行号找到所在的行。

暂时就想到这些。

相同点:

Button Group和Panel都是GUI对象的容器

对象类型均为uipanel

当移动 Button Group和Panel位置时,它们的子对象也随之移动且保持相对位置不变

不同点:

Button Group可以管理Radio Button和Toggle Button对象,且同一个Button Group中的此类子对象只允许一个处于“按下”或“选中”的状态

其他:

若将Radio Button对象单独使用,想要得到多个对象只有一个被“选中”的效果可用以下方法:

function radiobutton1_Callback(hObject,eventdata,handles)

set(handlesradiobutton1,'value',1);

set(handlesradiobutton2,'value',0);

%你想通过radiobutton2实现的 *** 作

function radiobutton2_Callback(hObject,eventdata,handles)

set(handlesradiobutton1,'value',0);

set(handlesradiobutton2,'value',1);

%你想通过radiobutton1实现的 *** 作

两个lineEdit,判断焦点,按键无焦点,在设置linEdit有焦点setFocus才能有效;

参考实例如下:

#include "widgeth"#include "ui_widgeth"

#include <QButtonGroup>

Widget::Widget(QWidget parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

QButtonGroup m_buGroup = new QButtonGroup(this);//按钮组

ui->pushButton0->setFocusPolicy(Qt::NoFocus);//设置按钮无焦点

ui->pushButton0->setIconSize(QSize(55, 50));

m_buGroup->addButton(ui->pushButton0,1);//添加按钮到QButtonGroup

ui->lineEdit->setFocus();//设置焦点

QObject::connect(m_buGroup, SIGNAL(buttonClicked(int)),this, SLOT(buttonNumslot(int)));

}

void Widget::buttonNumslot(int bn)

{

if(ui->lineEdit->hasFocus())//输入框1焦点

{

ui->lineEdit->insert(QString::number(bn));

}

else if(ui->lineEdit_2->hasFocus())//输入框2焦点

{

ui->lineEdit_2->insert(QString::number(bn));

}

设置按钮无焦点,lineEdit才可以判断焦点。

界面有两个QCheckBox,然后在构造函数中加上下面代码即可:

QButtonGroup group = new QButtonGroup(this);

group->addButton(ui->checkBox,1);

group->addButton(ui->checkBox_2,2);

bg = new QButtonGroup;//按钮组

connect(bg,SIGNAL(buttonClicked(int)),this,SLOT(allButtonPointSlot(int)));

for(i = 0;i < 90;i++){ //初始化所有button,并增加到button group里,实现多按钮共享一个槽函数的功能

btn[i] = new MyButton;

btn[i]->setMaximumSize(BtnW,BtnH);//按钮大小

btn[i]->setMinimumSize(BtnW,BtnH);

btn[i]->setFlat(true);

bg->addButton(btn[i],i);//添加按钮到按钮组

}

以上就是关于如何获取RadioGroup中RadioButton的值全部的内容,包括:如何获取RadioGroup中RadioButton的值、android单击button后,获取某个控件的值,怎么获取、在tablewidget中添加button之后怎么去获取信号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9504389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存