按钮function中的空指针exception

Button btnEditor; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnEditor = (Button) findViewById(R.id.btnEditor); //some code btnEditor.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { } }); } 

btnEditor.setOnClickListener(new View.OnClickListener()给了我一个空指针exception .btnEditor是XML Button的早期连接器: btnEditor = (Button) findViewById(R.id.btnEditor);

在我的main.xml文件中:

 

说真的,我不知道该做什么……

解决

我忘了我有两个main.xml文件:

  • / RES /布局
  • / RES /布局大

其中一个(在大型目录中)内部没有包含Button,因此在使用大型布局在设备上运行应用程序时出错。

很可能你没有使用此Button所在的layout调用setContentView() ,否则你没有此行之前调用setContentView()

 btnEditor = (Button) findViewById(R.id.btnEditor); 

这些情况中的任何一种都会在该线上产生NPE并且是它的唯一原因。 如果你认为你那么请发布你如何做到这一点。

尝试下一步:

  1. btn.setOnclickListener(本);
  2. 您的类名实现了OnclickListener
  3. 添加方法OnClick
  4. @Override public void onClick(View v){switch(v.getId()){case R.id.R.id.btnEditor:your code break; }}

把它写成全局变量

 Button btnEditor ; 

在你的on create()写

 btnEditor = (Button) findViewById(R.id.btnEditor); btnEditor.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { } });