在获取 NPE 的活动中调用片段方法



我想从MainActivity.java调用MainFragment.java方法

这是我尝试过的:

主活动.java

MainFragment mainFragment;
........
mainFragment = new MainFragment();
.........
mainFragment.deom();

主片段.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。

你必须初始化 MainFargment。

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

最新更新