Android Texte d'un TextView dans le Fragment qui est en FragmentPagerAdapter

C'est me rend fou. Fondamentalement, je veux créer un ViewPager et ajouter un peu de Fragments à elle. Ensuite, tout ce que je veux faire, c'définissez une valeur dans l'un des Fragment's TextViews. Je peux ajouter les Fragments fine, et qu'ils attachent, mais quand je vais à findViewById() pour l'un des TextViews dans le premier Fragment il jette à un NullPointerException. J'ai, pour la vie de moi, ne peuvent pas comprendre pourquoi.

Voici mon code jusqu'à présent, laissez-moi savoir si il en faut plus s'il vous plaît.

public class SheetActivity extends FragmentActivity {
///////////////////////////////////////////////////////////////////////////
//Variable Declaration
///////////////////////////////////////////////////////////////////////////
private ViewPager               viewPager;
private PagerTitleStrip         titleStrip;
private String                  type;
private FragmentPagerAdapter    fragmentPager;  //UPDATE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sheet);
viewPager = (ViewPager) findViewById(R.id.viewPager);
titleStrip = (PagerTitleStrip) findViewById(R.id.viewPagerTitleStrip);
//Determine which type of sheet to create
Intent intent = getIntent();
this.type = intent.getStringExtra("type");
FragmentManager manager = getSupportFragmentManager();
switch (type) {
case "1":
viewPager.setAdapter(new InstallAdapter(manager));
break;
case "2":
viewPager.setAdapter(new InstallAdapter(manager));
break;
}
fragmentPager = (FragmentPagerAdapter) viewPager.getAdapter();  //UPDATE
}
@Override
public void onResume() {
super.onResume();
fragmentPager.getItem(0).setText("something"); //UPDATE
}
class MyAdapter extends FragmentPagerAdapter {
private final String[]      TITLES      = { "Title1", "Title2" };
private final int           PAGE_COUNT  = TITLES.length;
private ArrayList<Fragment> FRAGMENTS   = null;
public MyAdapter(FragmentManager fm) {
super(fm);
FRAGMENTS = new ArrayList<Fragment>();
FRAGMENTS.add(new FragmentA());
FRAGMENTS.add(new FragmentB());
}
@Override
public Fragment getItem(int pos) {
return FRAGMENTS.get(pos);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int pos) {
return TITLES[pos];
}
}
}

Tous Fragments j'ai créé seulement le onCreateView() méthode redéfinie afin que je puisse afficher le XML de mise en page. Sauf qu'ils sont "de stock". Pourquoi je ne peux pas interagir avec les éléments dans les Fragments?

Mise à JOUR:

Donc faire quelque chose comme ça?

public class FragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle inState) {
return inflater.inflate(R.layout.fragment_a, container, false);
}
public void setText(String text) {
TextView t = (TextView) getView().findViewById(R.id.someTextView);  //UPDATE
t.setText(text);
}
}

XML DE MISE EN PAGE DE FRAGMENT D'UN

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/someTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="22sp" />
</LinearLayout>

OriginalL'auteur Josh I | 2014-07-03