java - 在获取 NPE 的 Activity 中调用 Fragment 方法

标签 java android android-fragments android-activity

我想调用MainFragment.java的方法来自MainActivity.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。

最佳答案

您必须初始化 MainFargment。

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

mainFragment.deom();

关于java - 在获取 NPE 的 Activity 中调用 Fragment 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45598935/

相关文章:

android - Android TV 的手机/平板电脑的纵向模式和横向模式?

android - 通过 android 连接本地主机 - 连接到 10.0.2.2 被拒绝

android - 实现 Fragment 和 ViewPager 后无法编辑某些 View

android - 如何在 ListView 单元格中使用 Fragment?

java - 使用 Maven 程序集插件创建 WAR 文件

java - 双向 @OneToMany 映射对象(父级和子级): parent gets saved, 子级不

java - 使用 Java 在 pentaho Kettle-spoon 中进行转换和工作的示例程序(Eclipse)

java - 从加速度传感器写入文件 - android

android - "...must supply a layout_height..."但它在我的风格资源中?

android - 如何使用 Android Jetpack 的导航组件禁用后退导航并删除 fragment 上的后退箭头?