请问在调用自定义控件的button事件时会有空指针错误

出错的代码如下,是菜单中的按钮事件,点击就会出现空指针错误。如果把setOnClickListener注释掉就不会出错。请问各位为什么会报错呢?代码如下。

 public boolean onOptionsItemSelected(MenuItem item) {
        switch(item.getItemId()){
        case 1:
             LayoutInflater inflater = getLayoutInflater();
             View layout = inflater.inflate(R.layout.tel_dialog,
                     (ViewGroup) findViewById(R.id.dialog));
             AlertDialog.Builder builder = new AlertDialog.Builder(this);
             builder.setTitle("拨打电话");
             builder.setIcon(android.R.drawable.ic_dialog_info);
             builder.setView(layout);
             tel = (EditText)findViewById(R.id.telNum);
             dialing = (Button)findViewById(R.id.dialing);
             cancel = (Button)findViewById(R.id.cancel);

             dialing.setOnClickListener(new OnClickListener(){

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    String telNum = tel.getText().toString();
                    Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+telNum));
                    startActivity(intent);
                }

             });

             cancel.setOnClickListener(new OnClickListener(){

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub

                    }

                 });

             builder.show();
            break;
        case 2:
            MainActivity.this.finish();
            break;
        }

        return true;
    }

不胜感激!

3个回答

为了程序的健壮性,在使用前最好判断一下是否为空?
为空的原因,需要进一步判断:是偶尔出现,还是必现?如果是必现,则应该控件ID的原因;如果是偶尔出现,可能是程序中其它代码有问题导致的,如:越界。

我想你应该要这样来获取菜单界面上面的控件

tel = (EditText)layout.findViewById(R.id.telNum);
dialing = (Button)layout.findViewById(R.id.dialing);
cancel = (Button)layout.findViewById(R.id.cancel);

如果我想得没错的话这几个控件都是layout这个view里面的

空指针错误
dialing.setOnClickListener
cancel.setOnClickListener

那就是上面这2个对象是null
没有取出来这2个对象

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

4
Qt 怎么在自定义函数中调用MainWindow中的槽函数
1
创建控件时出错,对COM组件的调用返回了错误 HRESULT E_FAIL
1
Visula Basic怎么不通过控件的方式直接调用控件的界面
1
请教VB6.0控件调用控件的问题
3
android:自定义button继承自button, 调用setTextcolor无效
2
为什么自定义控件属性访问为null呀
7
Android中 activity怎么调用自定义view中重绘的方法?
2
Android中 activity调用自定义view中的重绘方法不起作用?
2
MFC如何使用自定义函数调用控件关联的变量
1
eclipse加载自定义qt控件
1
控件可以调用二维数组么?vb里的控件数组可以是二维的么?
1
控件里能不能定义调用它的函数的数组呢?控件是怎么传参数的?
1
控件事件包含数组的顺序是什么,控件中事件是怎么调用数组的?
2
请问调用一个ocx控件,数组怎么直接调用给ocx,而不要复制一个数组给ocx?
2
调用ocx控件的事件代码,写在主程序的事件中,定义的变量还是算主程序的还是算ocx的?
2
vb编程语言系统中拖入控件编写对应的事件,控件里调用exe里的窗体上的全局变量
2
控件里面嵌套控件的调用,ocx的内存是放在外侧ocx内存里的么?
2
判断vb控件外的控件还是窗体的问题,怎么判断vb的控件是否被人嵌入了,而不是直接调用的?
2
以timer控件为例怎么在summain过程中编写代码实现对控件的调用,而控件不在界面的内存
3
python 中 我自定义了 两个函数 但是调用的时候说报错说未定义