您的位置:首页 > 移动开发

radioButton添加试题选项webview(二)

2014-07-08 11:18 253 查看
由于项目里radioGroup里,4个选项里加载的是webview,而不是radiobutton本身自己可设置的text类型,并且每个webview都需要和radiobutton对齐,所以这个布局有点费劲。。。

起初想的是,radiogroup包括着4个水平布局的linearlayout,每个linearlayout包括着radiobutton和webview,布局展示上没有问题,结果运行出来,单选的题竟然可以变成多选,radiobutton不再对这4个radiobutton起管理作用了,网上查资料,原来raidogroup和radiobutton中间不能嵌套别的layout,否则就失去单选作用了。

解决: 自定义了个radioGroup,用4个水平布局的linearlayout,每个layout放一个button和webview,然后为这4个button绑定相同的监听器,代码如下:

private Button rbA;
private Button rbB;
private Button rbC;
private Button rbD;

rbA.setOnClickListener(selectChangedListener);
rbB.setOnClickListener(selectChangedListener);
rbC.setOnClickListener(selectChangedListener);
rbD.setOnClickListener(selectChangedListener);

//单选题按钮监听
OnClickListener selectChangedListener=new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

isSelected = true;
if(v.getId()==rbA.getId()){

rbB.setEnabled(false);
rbC.setEnabled(false);
rbD.setEnabled(false);
}else if(v==rbB){

rbA.setEnabled(false);
rbC.setEnabled(false);
rbD.setEnabled(false);
}else if(v==rbC){

rbA.setEnabled(false);
rbB.setEnabled(false);
rbD.setEnabled(false);
} else if(v==rbD){

rbA.setEnabled(false);
rbB.setEnabled(false);
rbC.setEnabled(false);
}

if(("<p>"+((Button) v).getText().toString()+"</p>").equals(subject[GPUtils.subjectLoaded-1][8]))    {

textViewSelectResult.setText("恭喜你,答对了!");
linearSelectResult.setVisibility(View.VISIBLE);

GPUtils.wellDone+=1;

}else {

textViewSelectResult.setText("很遗憾,答错了!");
linearSelectResult.setVisibility(View.VISIBLE);

}

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: