2 myc 100 myc_100 于 2012.12.29 10:36 提问

Android按钮:当添加ClickEvent事件时总是出错

我在布局中创建了一个按钮,当我测试时可以在屏幕上显示。我为这个按钮添加了click事件,但是就会接收到NullPointerException错误信息。用的以下的代码:

 Button b1;
   int REQUEST_CODE =1;

   @Override
   public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

        b1 = (Button) findViewById(R.id.web_button);        
        b1.setOnClickListener(new OnClickListener() { //ERROR THIS LINE

            public void onClick(View arg0){}
        }); 
        setContentView(R.layout.intent);
   }

哪里出错了呢?

3个回答

baimy1985
baimy1985   2012.12.29 19:06
已采纳

前面的答案没错,只是想补充一下 也许加上那个view更保险一点

b1.setOnClickListener(new  View.OnClickListener(){ //ERROR THIS LINE
                public void onClick(View arg0){
                }
            }); 
usniyo
usniyo   2013.01.02 13:46

setContentView(R.layout.intent);不能放到后面,它一定要放在初始化控件之前。因为你还没有往Activity里添加任何控件,就在里面找控件,那当然是空的了。setContentView(R.layout.intent)就 是把你在XML文件里定义的视图控件全部装到Activity里,然后才能一个一个地找出来:

b1 = (Button) findViewById(R.id.web_button); 
CSDN_Ask
CSDN_Ask   2012.12.29 14:46

在你设置内容视图前,寻找这个按钮。应该这样做:

@Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);

            setContentView(R.layout.intent);
            b1 = (Button) findViewById(R.id.web_button);        
            b1.setOnClickListener(new OnClickListener() { //ERROR THIS LINE
                public void onClick(View arg0){
                }
            }); 


        }
Csdn user default icon
上传中...
上传图片
插入图片