首页 > 代码库 > NullPointerException
NullPointerException
============问题描述============
public class MainActivity extends Activity
{
Button button=(Button)findViewById(R.id.button);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);//private abstract constant String Intent。ACTION_CALL
intent.setData(Uri.parse("tel:"+"110"));
startActivity(intent);
}
});
}
}
为啥报错NullPoinerException??
============解决方案1============
Button button=(Button)findViewById(R.id.button);要写在oncreate里面……
============解决方案2============
在没有绑定布局之前,是得不到button对象的,同意楼上
============解决方案3============
写在setContentView(R.layout.fragment_main);的下面
============解决方案4============
如图中提示一样,把button的初始化写到setContentView(R.layout.fragment_main);的下面就ok了
============解决方案5============
需要了解activity的原理,activity 并不是界面,而是window的控制器,只有加载了layout才能有展示,才能找到layout里面的组件
============解决方案6============
加载布局文件之后才能去获取控件
============解决方案7============
Button button=(Button)findViewById(R.id.button);这个参考楼上,还有要实现接口 implements OnClickListener
============解决方案8============
button的初始化应该在onCreat里面
NullPointerException
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。