如何从MainActivity中设置ViewPager中片段的TextView?

时间:2016-01-15 17:30:06

标签: java android android-fragments

所以我在First-fragment中有一个名为changeText()的方法,当我从MainActivity调用它时,我在TextView上得到一个空指针异常。但是,如果我从Fragment类中的onCreate()调用它,它就可以工作。

任何帮助都会很棒。

我如何从Activity

中调用它
    ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

    int index = pager.getCurrentItem();
    MyPagerAdapter adapter = ((MyPagerAdapter)pager.getAdapter());
    FirstFragment fragment = (FirstFragment) adapter.getItem(index);


    fragment.changeText("dssf");

片段类

public class FirstFragment extends Fragment {

TextView frv;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.first_frag, container, false);

     frv=(TextView) v.findViewById(R.id.tvFragFirst);




    return v;
}

public static FirstFragment newInstance(String text) {

    FirstFragment f = new FirstFragment();
    Bundle b = new Bundle();
    b.putString("msg", text);

    f.setArguments(b);

    return f;
}

public void changeText(String text){
    //frv=(TextView) getView().findViewById(R.id.tvFragFirst);

    frv.setText(text);
}}

提前致谢。

编辑**

错误即将到来

  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                                                   at com.example.//.slider.FirstFragment.changeText(FirstFragment.java:45)
                                                   at com.example.//.slider.MainActivity.onCreate(MainActivity.java:26)

0 个答案:

没有答案