設置文本到在活動一個TextView我在Activity類的頂部創建這樣的變量時:的NullPointerException試圖從片段
private TextView label;
林分配在onCreate方法像這樣的TextView:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
label = (TextView) findViewById(R.id.label);
}
而在活動我有這樣的功能:在一個片段
public void changeLabel(String label){
label.setText(label);
}
那麼是誰連接到活動,onAttach方法裏面我這樣做:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((ParentActivity)activity).changeLabel("New label");
}
但即時得到NullPointerException異常的活動,changeLabel函數中,這裏是錯誤:
01-15 10:44:43.090 28800-28800/com.app.example E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.app.example, PID: 28800
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.example/com.app.example.ParentActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202)
...
Caused by: java.lang.NullPointerException
at com.app.example.Parentacitvity.changeLabel(Home.java:269)
at com.app.example.HomeFragment.onAttach(ChildFragment.java:33)
...
at android.app.Activity.onCreate(Activity.java:907)
at com.app.example.ParentActivity.onCreate(Home.java:68)
...
這隻happenning當我在完成多個任務之後回到應用程序,所以我認爲在Activity中調用onCreate之前,該函數可能會被fragment調用。任何建議?