为什么ImageView 和TextView无法关闭
来源:8-4 作业题
CV工程师鱼
2018-03-05 01:49:45
package com.imooc.ui_project; import java.security.PublicKey; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.text.Layout; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.ToggleButton; public class MainActivity extends Activity { private int year,month,date,hour,minute,second,millisecond; private ToggleButton toggleButton; private RadioGroup radioGroup; private RadioButton rb01, rb02, rb03; private ImageView imageView; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ui); initView(); textView.setText(setTime()); toggleButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (toggleButton.isChecked()) { radioGroup.setVisibility(View.VISIBLE); } else { radioGroup.setVisibility(View.GONE); imageView.setVisibility(View.GONE); textView.setVisibility(View.GONE); radioGroup.clearCheck(); } } }); } private void initView() { toggleButton = (ToggleButton) findViewById(R.id.tb); radioGroup = (RadioGroup) findViewById(R.id.rg); rb01 = (RadioButton) findViewById(R.id.rb01); rb02 = (RadioButton) findViewById(R.id.rb02); rb02 = (RadioButton) findViewById(R.id.rb03); imageView = (ImageView) findViewById(R.id.iv); textView = (TextView) findViewById(R.id.tv); radioGroup.setOnCheckedChangeListener(new MyRadioButtonListener()); } private String setTime(){ Calendar calendar= Calendar.getInstance(); year=calendar.get(calendar.YEAR); month=calendar.get(calendar.MONTH); date=calendar.get(calendar.DATE); hour=calendar.get(calendar.HOUR); minute=calendar.get(calendar.MINUTE); second=calendar.get(calendar.SECOND); millisecond=calendar.get(calendar.MILLISECOND); return "当前时间:"+year+"-"+month+"-"+date+"-"+hour+ "-"+minute+"-"+second+"-"+millisecond; } class MyRadioButtonListener implements OnCheckedChangeListener { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb01: imageView.setImageResource(R.drawable.office); break; case R.id.rb02: imageView.setImageResource(R.drawable.meeting); break; case R.id.rb03: imageView.setImageResource(R.drawable.visitor); } imageView.setVisibility(View.VISIBLE); textView.setVisibility(View.VISIBLE); } } }
2回答
Polaris717
2018-10-12
toggleButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (toggleButton.isChecked()) { radioGroup.setVisibility(View.VISIBLE); } else { radioGroup.setVisibility(View.GONE); imageView.setVisibility(View.GONE); textView.setVisibility(View.GONE); radioGroup.clearCheck(); } } });
这一段中, radioGroup.clearCheck(); 放在radioGroup之后,放在Imageview之前,可能因为radioButton还是选中的,imageView.setVisibility(View.GONE); textView.setVisibility(View.GONE);执行之后又被打开了,然后radioGroup.clearCheck();才执行
CV工程师鱼
提问者
2018-03-05
相似问题