每當我在我的Activity的onCreate中使用findViewById時,我得到一個NullPointerException。例如:當在onCreate中調用findViewById時發生NullPointerException
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
TextView mTextView = (TextView) findViewById(R.id.textview);
}
我已閱讀,這個問題可能是由該意見可能不完全當我試圖找到他們,這就是爲什麼我得到一個空指針加載。如果我呼籲findViewById在我的活動的片段onCreateView,一切工作正常:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
TextView mTextView = (TextView) rootView.findViewById(R.id.textview);
}
不過,我需要使用mTextView這個片段類外。我在Android的官方文檔中看到很多例子,其中findViewById用在Activity的onCreate中。我究竟做錯了什麼?
你不是在片段上使用setContentView,也不是在onCreate上操作佈局http://developer.android.com/guide/components/fragments.html –
我應該在哪裏操作佈局呢? – iguarna