为了账号安全,请及时绑定邮箱和手机立即绑定

求老师来帮我看看代码 能运行但是点击开关的时候就会报错

求老师来帮我看看代码 能运行但是点击开关的时候就会报错

晚起一生风 2016-07-17 09:03:20
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; import android.widget.ToggleButton; public class MainActivity extends Activity implements OnCheckedChangeListener{ private ToggleButton tgbt; private ImageView img;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);                  //初始化控件         tgbt = (ToggleButton) findViewById(R.id.toggleButton1);         img = (ImageView) findViewById(R.drawable.ic_launcher);                  //给tgbt添加一个监听器         tgbt.setOnCheckedChangeListener(this);              } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { img.setBackgroundResource(isChecked?R.drawable.abc:R.drawable.ic_launcher); }   }
查看完整描述

6 回答

已采纳
?
甫艾蒽廷

TA贡献38条经验 获得超21个赞

img.setBackgroundResource之前加上一句:tgbt.setChecked(isChecked);

查看完整回答
2 反对 回复 2016-07-17
  • 晚起一生风
    晚起一生风
    加了可以谢谢!但是能不能帮我讲解一下这句话tgbt.setChecked(isChecked);作用含义是什么
  • 甫艾蒽廷
    甫艾蒽廷
    Changes the checked state of this button. @param checked true to check the button, false to uncheck it。设置按钮状态
  • 甫艾蒽廷
    甫艾蒽廷
    刚刚查看了源码,android里面这个setChecked方法,是调用onClickChanged方法的入口,只不过只用了一次递归,至于为什么要在setChecked方法中,调用onClickChanged方法。而不在onClickChanged中调用setChecked方法,这是因为我们先点击按钮才会触发事件,而不是先触发事件。
点击展开后面1
?
慕粉3687636

TA贡献3条经验 获得超0个赞

log显示是MainActivity中33行空指针了,看看.前面的控件是不是没有初始化

查看完整回答
反对 回复 2016-07-22
?
一条小咸鱼

TA贡献457条经验 获得超255个赞


看看你的报错信息

查看完整回答
反对 回复 2016-07-17
  • 6 回答
  • 0 关注
  • 1899 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信