J'essaye de mettre à jour certaines vues qui placent dans un fragment ViewPager dans un fragment, et chaque fois que j'utilise findViewById, je suis de retour à zéro. J'ai essayé plusieurs des solutions que je trouve ici (stack overflow) et rien n'aide.findViewById retourne toujours null en utilisant FragmentStatePagerAdapter
ici est tout le code:
activity_main.xml
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
MainActivity.java:
PageManager _pageManager;
ViewPager _viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_viewPager = (ViewPager) findViewById(R.id.viewpager);
_pageManager = new PageManager(getSupportFragmentManager());
_viewPager.setAdapter(_pageManager);
_imageView=(ImageView)findViewById(R.id.PictureBox);
PageManager.java
public class PageManager extends FragmentStatePagerAdapter {
final int NUMBER_OF_PAGES = 3;
public PageManager(android.support.v4.app.FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new CountdownPage();
case 1:
return new VideosPage();
case 2:
return new SeasonSummary();
default:
return null;
}
}
@Override
public int getCount() {
return NUMBER_OF_PAGES;
}
}
CountdownPage.java
public class CountdownPage extends Fragment {
int resId=0;
ImageView _imageView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container==null)
ShowMessage.GetInstance(null).ShowMessage("error","container");
return inflater.inflate(R.layout.countdown_page,container,false);
}
}
countdown_page.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@color/Black"
android:layout_width="match_parent"
android:id="@+id/countdownLayout"
android:layout_height="match_parent">
<TextView
style="@style/HeaderStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Countdown"
android:gravity="center"
android:id="@+id/CountdownHeader"
/>
<ImageView
android:layout_width="320dp"
android:layout_height="320dp"
android:id="@+id/PictureBox"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:onClick="testF"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:id="@+id/counterTextView"
android:gravity="center"
android:textColor="#FFFF"
/>
</LinearLayout>
Je suis en train de résoudre ce pendant des heures Merci beaucoup, Ou Yaacov
Pouvons-nous voir stacktrace? –
Vous devez utiliser findViewById pour l'affichage de l'image dans un fragment comme: View view = inflater.inflate (R.layout.countdown_page, container, false); _imageView = (ImageView) view.findViewById (R.id.PictureBox); – Keshav1234
donc je peux je trouver juste l'image? J'obtiens maintenant ce que j'ai fait mais je ne peux toujours pas penser à une solution –