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

来源:8-4 作业题

weixin_慕容0194784

2019-04-25 15:13:35

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回答

irista23

2019-04-25

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

http://img.mukewang.com/climg/5cc164050001b06e06380489.jpg

0
hrista23
回复
heixin_慕容0194784
h 当选项较多时,radio_choice.clearCheck();写法更简洁,另外重要的是把clearCheck();先调用,让程序对ImageView的操作最后是执行的View.Gone ,你如果把setChecked(false)放最后,程序会最后执行的图片的View.VISIBLE
h019-04-25
共2条回复

0 学习 · 7235 问题

查看课程