为什么关闭wifi时图片还在?怎么修改?

为什么关闭wifi时图片还在?怎么修改?

public class MainActivity extends AppCompatActivity {
private ToggleButton TB;
private RadioButton RB1,RB2,RB3;
private RadioGroup RG;
private ImageView imageView1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.work);
        initView();
        setListener();
        }
        public void setListener(){
        RG.setOnCheckedChangeListener(new one());
        TB.setOnClickListener(new two());
        }
class one implements RadioGroup.OnCheckedChangeListener {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (checkedId){
            case R.id.RB1:
                imageView1.setImageResource(R.drawable.office);
                break;
            case R.id.RB2:
                imageView1.setImageResource(R.drawable.meeting);
                break;
            case R.id.RB3:
                imageView1.setImageResource(R.drawable.visitor);
                break;
        }
        imageView1.setVisibility(View.VISIBLE);
    }
}
class two implements View.OnClickListener{

    @Override
    public void onClick(View v) {
        if(TB.isChecked()){
            RG.setVisibility(View.VISIBLE);
        }else {
            RG.setVisibility(View.GONE);
            imageView1.setVisibility(View.GONE);
            RB1.setChecked(false);
            RB2.setChecked(false);
            RB3.setChecked(false);
        }
    }
}
    private void initView() {
        TB=(ToggleButton)findViewById(R.id.TB);
        RB1=(RadioButton)findViewById(R.id.RB1);
        RB2=(RadioButton)findViewById(R.id.RB2);
        RB3=(RadioButton)findViewById(R.id.RB3);
        RG=(RadioGroup)findViewById(R.id.RG);
        imageView1=(ImageView)findViewById(R.id.IV1);

    }

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
irista23 2019-04-25 15:41:30

当你调用下图第二个红框中的代码时,就会执行oncheckedchanged()回调,程序就会执行图片的显示设置。正确做法是在关闭wifi时,先调用RG的clearCheck()清空所有radio_choice下所有RadioButton的选中状态,再给RG、imageView1设置不可见

http://img1.sycdn.imooc.com//climg/5cc164050001b06e06380489.jpg

  • 提问者 weixin_慕容0194784 #1
    用clear cheat和直接用我这个方法有什么不同吗?
    2019-04-25 19:11:49
  • irista23 回复 提问者 weixin_慕容0194784 #2
    当选项较多时,radio_choice.clearCheck();写法更简洁,另外重要的是把clearCheck();先调用,让程序对ImageView的操作最后是执行的View.Gone ,你如果把setChecked(false)放最后,程序会最后执行的图片的View.VISIBLE
    2019-04-25 19:23:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师