为什么,setContentView()的位置正在创建Error

时间:2013-03-01 10:40:37

标签: android

为什么,这不是好的,它正在创建错误。

super.onCreate(savedInstanceState);

btn = ( Button ) findViewById(R.id.button);
btn.setOnClickListener(this);

setContentView(R.layout.activity_according_to_book);

如果我放" setContentView(R.layout.activity_according_to_book); "在第二行" super.onCreate(savedInstanceState); " ,它不会造成错误。

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_according_to_book);

btn = ( Button ) findViewById(R.id.button);
btn.setOnClickListener(this);

3 个答案:

答案 0 :(得分:0)

通过调用setContentView(),您正在为Activity的视图层次结构进行充气,然后通过调用Views获取对findViewById()的引用。如果您未调用setContentView() - 视图层次结构中没有任何Views,则无法引用它们。希望它足够清楚。

答案 1 :(得分:0)

它会产生错误,因为应用在调用setContentView后加载了布局,因此在该方法之前findViewById将始终返回null。

答案 2 :(得分:0)

当你打电话时

      findViewById(R.id.button);

在R.layout.activity_according_to_book上搜索Button。

所以setContentView(R.layout.activity_according_to_book);

必须在你寻找意见之前。