从 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
class.
创建的
我不确定创建一个新的选项卡实例是否正确,因为已经存在一个。我也不知道如何访问该实例。
我现在要 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
,您可以使用您为 Fragment
在xml。示例:
<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);
我在调用 Fragment 的方法时收到 NullPointerException
。
在我的 MainActivity 中:
AddTab fragObj = (AddTab) getSupportFragmentManager().findFragmentById(R.layout.fragment_add);
fragObj.receiveURL(sharedText);
receiveURL() 是我的 Fragment AddTab 中的一个方法。
我在我的应用程序中使用 pagerslidingtabstrip
创建选项卡,而 Fragment
是由 PagerAdapter
class.
我不确定创建一个新的选项卡实例是否正确,因为已经存在一个。我也不知道如何访问该实例。
我现在要 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
,您可以使用您为 Fragment
在xml。示例:
<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);