2017-08-09 67 views
0

我想從MainActivity.java呼叫片段法的活動越來越NPE

這裏調用MainFragment.java方法我都試過:

MainActivity.java

MainFragment mainFragment; 

........ 

mainFragment = new MainFragment(); 

......... 

mainFragment.deom(); 

MainFragment。 java

public void deom() { 

    Toast.makeText(getActivity(), "Demo", Toast.LENGTH_LONG).show(); 

} 

登錄

java.lang.NullPointerException 
at android.widget.Toast.<init>(Toast.java:93) 
at android.widget.Toast.makeText(Toast.java:241) 
at com.example.x.b(Unknown Source) 
at com.example.MainActivity.onOptionsItemSelected(Unknown Source) 
at android.app.Activity.onMenuItemSelected(Activity.java:2633) 
at android.support.v4.b.ao.onMenuItemSelected(Unknown Source) 
at android.support.v7.app.t.onMenuItemSelected(Unknown Source) 
at android.support.v7.view.n.onMenuItemSelected(Unknown Source) 
at android.support.v7.view.n.onMenuItemSelected(Unknown Source) 

我可以知道我在做錯誤?我錯過了什麼?爲什麼我得到NPE。

+0

你創建的'比如MainFragment'第一... – ByeBye

+0

@Selvin這不是重複一個 – Sophie

+0

@ByeBye試過相同,檢查更新的代碼及以上的日誌,仍然得到同樣的問題... – Sophie

回答

1

您必須初始化MainFargment。

MainFragment mainFragment = (MainFragment) getFragmentManager.findFragmentById(R.id.theId); 

mainFragment.deom(); 
+0

我忘了初始化這就是爲什麼我點擊你的答案是有用的,但我不能接受,因爲我仍然得到相同的NPE ...檢查更新的代碼和日誌以上 – Sophie

+0

你怎麼樣最終開始努力調試自己的代碼? –

+0

@Sophie,以及你正在使用的片段。我已經更新了我的答案。一探究竟。 –