繁体   English   中英

从Activity调用Fragment方法时出现NullPointerException吗?

[英]NullPointerException when calling a Fragment method from Activity?

调用Fragment的方法时出现NullPointerException

在我的MainActivity中:

  AddTab fragObj = (AddTab) getSupportFragmentManager().findFragmentById(R.layout.fragment_add);
 fragObj.receiveURL(sharedText);

receiveURL()是我的Fragment AddTab中的方法。

我在我的应用程序中使用pagerslidingtabstrip创建选项卡,而Fragment是由它的PagerAdapter类创建的。

我不确定是否应该创建Tab的新实例,因为已经存在。 我也不知道该如何访问该实例。

我现在收到一个NullPointerException 任何人都可以帮助我如何在片段中调用该方法吗?

编辑:

AddTab.java:

public class AddTab extends Fragment implements View.OnClickListener {

...

}

fragment_add.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context="com.example.nikhil.amazon1.Add">


    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:text="@string/URL"
        android:hint="@string/hint"
        android:layout_marginTop="200dp"
        android:layout_gravity="center_horizontal|top" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Track"
        android:id="@+id/button"
        android:layout_gravity="center" />

</FrameLayout>

如果使用<fragment>标记在布局中包含一个Fragment ,则可以使用find的findFragmentById使用为xml中的Fragment分配的ID。 范例:

<fragment
    ...
    android:id="@+id/fragment_id/>

AddTab fragObj = (AddTab)getSupportFragmentManager().findFragmentById(R.id.fragment_id);

如果您动态添加了Fragment ,请使用标签:

String TAG = "fragment tag";

FragmentTransaction ft;
ft.add(containerViewId, fragment, TAG);

AddTab fragObj = (AddTab)getSupportFragmentManager().findFragmentByTag(TAG);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM