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

为什么我的代码和老师一样的却报错?

package com.sorgs.dome3;

import android.support.v7.app.ActionBarActivity;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ToggleButton;
import android.os.Bundle;

public class MainActivity extends ActionBarActivity {
	
	private ToggleButton tb;
	private ImageView img;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		tb = (ToggleButton)findViewById(R.id.toggleButton1);
		img= (ImageView)findViewById(R.id.imageView1);
		
		//给tb设置监听器
		tb.setOnCheckedChangeListener(this);
	}
	
	@Override
	public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
		//当 tb 被点击的时候,当前的方法会执行
		
		//buttonView 代表被点击控件的本身
		//isChecked 代表被点击控件的状态
		
		//当点击这个tb的时候,更换img的背景
		
		img.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);
	}
}

http://img1.sycdn.imooc.com//575252cc0001337d09300192.jpg


如果按照提示,改了几变成这样了:

package com.sorgs.dome3;


import android.support.v7.app.ActionBarActivity;

import android.widget.CompoundButton;

import android.widget.CompoundButton.OnCheckedChangeListener;

import android.widget.ImageView;

import android.widget.ToggleButton;

import android.os.Bundle;


public class MainActivity extends ActionBarActivity {

private ToggleButton tb;

private ImageView img;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

tb = (ToggleButton)findViewById(R.id.toggleButton1);

img= (ImageView)findViewById(R.id.imageView1);

//给tb设置监听器

tb.setOnCheckedChangeListener((OnCheckedChangeListener) this);

}

public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){

//当 tb 被点击的时候,当前的方法会执行

//buttonView 代表被点击控件的本身

//isChecked 代表被点击控件的状态

//当点击这个tb的时候,更换img的背景

img.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);

}

}



没有报错了,但是程序运行闪退

正在回答

3 回答

接口弄错了,是implements onCheckedChangeListener

0 回复 有任何疑惑可以回复我~
#1

sorgs 提问者

非常感谢!
2016-07-14 回复 有任何疑惑可以回复我~

xml对的吗?

0 回复 有任何疑惑可以回复我~
package com.sorgs.dome3;

import android.support.v7.app.ActionBarActivity;
import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ToggleButton;
import android.os.Bundle;

 public abstract class MainActivity extends ActionBarActivity implements OnClickListener{
	
	private ToggleButton tb;
	private ImageView img;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		tb = (ToggleButton)findViewById(R.id.toggleButton1);
		img= (ImageView)findViewById(R.id.imageView1);
		
		//给tb设置监听器
		tb.setOnCheckedChangeListener((OnCheckedChangeListener) this);
	}
	
	public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
		//当 tb 被点击的时候,当前的方法会执行
		
		//buttonView 代表被点击控件的本身
		//isChecked 代表被点击控件的状态
		
		//当点击这个tb的时候,更换img的背景
		
		img.setBackgroundResource(isChecked?R.drawable.on:R.drawable.off);
	}
}

我发现是我没有弄接口,但是现在弄了,还是闪退

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312585    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

为什么我的代码和老师一样的却报错?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信