2 o casper ne O_Casper_ne 于 2012.12.24 17:38 提问

Button onClick事件不能运行

我创建一个viewPager,在每一个页面上有三个布局。在第二个页面上我想处理按钮事件,当点击按钮时背景颜色会变。但是现在我的代码不能运行。去掉button代码,viewPager就可以正常运行。
这是我的代码:

public class ViewPagerProjectActivity extends Activity implements OnClickListener{

Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ViewPagerAdapter adapter = new ViewPagerAdapter( this );
    ViewPager pager = (ViewPager)findViewById( R.id.viewpager );
    pager.setAdapter( adapter );
    pager.setCurrentItem(0);


}


public void OnClick(View v) {
    if(v.equals(btn)) {
    LinearLayout l = (LinearLayout) findViewById(R.id.deneme2);
            l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
    }       
}    
}

错误:

E/AndroidRuntime(273): FATAL EXCEPTION: main
E/AndroidRuntime(273): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yahya.ViewPagerProject/com.yahya.ViewPagerProject.ViewPagerProjectActivity}: java.lang.ClassCastException: com.yahya.ViewPagerProject.ViewPagerProjectActivity
E/AndroidRuntime(273):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime(273):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(273):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)

4个回答

LiDaming_and
LiDaming_and   2012.12.25 15:02
已采纳

试一下以下的三行代码:

View deneme2lout = (View) getView.inflate(R.layout.deneme2,null);
btn = (Button) deneme2lout.findViewById(R.id.button1);
btn.setOnClickListener(this);
qingqing_benniu
qingqing_benniu   2012.12.25 14:33

你可以用imagebutton控件来实现背景图片的改变的啊...

suannai0314
suannai0314 详细的回答更能得到用户的青睐,而且更容易被采纳哦
5 年多之前 回复
baimy1985
baimy1985   2012.12.24 20:34

java.lang.ClassCastException: 这个异常是哪个类型不匹配啊,在你贴出来的代码里没找到,可不可以单步调试一下看下现场应该可以定位是哪行代码错了

nana4ever
nana4ever   2013.01.08 13:44

使用下面的代码试试:

 public class ViewPagerProjectActivity extends Activity {

    Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ViewPagerAdapter adapter = new ViewPagerAdapter( this );
        ViewPager pager = (ViewPager)findViewById( R.id.viewpager );
        pager.setAdapter( adapter );
        pager.setCurrentItem(0);

        LinearLayout l = (LinearLayout) findViewById(R.id.layout1);
        btn = (Button) findViewById(R.id.button1);    
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {               

                 l.setBackgroundDrawable(getResources().getDrawable(R.drawable.background));
            }
        });
    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
button的onclick事件在360浏览器中不响应,但在IE中可以,不明白原因
今天为了测试html调用js文件,一开始一直用的是360进行测试,发现button的onclick事件无响应。后来换了IE浏览器之后,发现可以就不知道为什么。懂的可指导下,不然只能等深入后慢慢解答了。 function changeText() { alert("来来,我们都是果果!"); }
按钮无法触发点击事件
上午被按钮的一个点击不能触发事件折腾了许久。现已解决,总结并分享出来。希望能对遇到这种情况的人有所帮助。 1、UIButton不能点击情况的第一种是,你将button添加到一个不能响应点击事件的View里。如你将button添加到UIImageView中,解决办法只需将UIImageView的 userInteractionEnabled设为YES即可。 2、UIButton不能点击
JS中button控件click事件无法响应的问题
再点击登录按钮时无法响应JS事件,后来发现button控件的id值和onclick中的方法名相同导致的,修改id为loginbtn即可     function login(){     } 确认登录
android 一个控件设置了事件响应(比如Button添加了OnClick回调响应),却在触发控件事件时,不执行事件处理函数
android 一个控件设置了事件响应(比如Button添加了OnClick回调响应),却在触发控件事件时,不执行事件处理函数
解决动态生成input无法触发click事件的问题
<input type="button" class="delServer" value="删除服务器">$('.delServer').click(function() {    alert("ok");});原因:异步导致绑定事件失败。解决方法:使用全局绑定事件$(document).on("click",".delServer",function(){ 
input type = button 中onclick无效
函数不能放在ready里<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"> </script> <script> function fas(){ alert(1); } </scr
javascript中用Jquery注册button的click事件不能响应
<br /> <br />-------------------------------------javascript中用Jquery注册button的click事件不能响应----------------------------------------------<br /> <script language="javascript" type="text/javascript" ><br />// 登录按钮的响应事件<br /> $("login").click(function() {<br /> 
input button onclick无效
如题。 再三确定input没写错。js方法名也没写错。然而当页面点击button 时, 却始终报找不到方法的错误。 最后将input 的属性name改了,结果就没报错了。而且整个页面name没有重名。即使重名也不该报这样的错误啊。不知为何之前总报错。 附上代码,之后研究 刷新 保存 委托收到
javascript button onclick 失效
今天在测试页面时定义了一个button,定义了onclick函数, button: 但是怎么点button,onclick函数就是不被触发,纠结了一个小时。 当时使用的事google浏览器,换了IE浏览器后发现浏览器提示有错误,双击查看后找到代码行,发现错误行是这么写的: function check() { alter("ok"); // 大意失荆州!! } 特此m
触发隐藏按钮的onclick事件 注意事项
按钮隐藏的时候不要使用