Pra*_*shi 5 java android android-activity
我是android的初学者,我想知道为什么当我在定义TextView后放置我的 setContentView()时,我的应用程序崩溃,即
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=(TextView) findViewById(R.id.tv);
Linkify.addLinks(tv, Linkify.WEB_URLS|Linkify.EMAIL_ADDRESSES|
Linkify.PHONE_NUMBERS);
setContentView(R.layout.activity_main); //After TextView
}
Run Code Online (Sandbox Code Playgroud)
但是当我在定义TextView之前放入我的 setContentView()时,我的应用运行正常.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //Before TextView
TextView tv=(TextView) findViewById(R.id.tv);
Linkify.addLinks(tv, Linkify.WEB_URLS|Linkify.EMAIL_ADDRESSES|
Linkify.PHONE_NUMBERS);
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样以及如何添加setContentView()才能产生差异?
setContentView()从字面上设置您的活动的视图.如果您尝试执行类似操作TextView tv=(TextView) findViewById(R.id.tv);,则无法查找,因为您尚未设置视图,因此您的应用程序崩溃了.这就是您setContentView()在尝试访问视图之前应该放置的原因.