代码之家  ›  专栏  ›  技术社区  ›  Nikhil

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

  •  0
  • Nikhil  · 技术社区  · 11 年前

    我得到了 NullPointerException 当调用Fragment的方法时。

    在我的 主要活动:

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

    receiveURL()是我的片段AddTab中的一个方法。

    我正在使用 pagerslidingtabstrip 在我的应用程序中创建选项卡 Fragment 由其创建 PagerAdapter

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

    我得到了 空指针异常 现在有人能帮我如何在片段中调用该方法吗?

    编辑:

    添加选项卡.java:

    public class AddTab extends Fragment implements View.OnClickListener {
    

    ...

    }

    碎片_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>
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   2Dee    11 年前

    如果您使用 <fragment> 标记以包含 Fragment 在布局中,可以使用find findFragmentById 使用您为 碎片 在xml中。例子:

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

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

    如果您添加了 碎片 动态地,使用标签:

    String TAG = "fragment tag";
    
    FragmentTransaction ft;
    ft.add(containerViewId, fragment, TAG);
    

    AddTab fragObj = (AddTab)getSupportFragmentManager().findFragmentByTag(TAG);
    
    推荐文章