
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之后怎么去获取信号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)