我在调用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>
答案 0 :(得分:1)
如果您使用<fragment>
标记在布局中添加Fragment
,则可以使用您在xml中为findFragmentById
指定的ID来查找Fragment
。示例:
<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);