[RESOLU]

J'essaye de suivre ce turorial pour obtenir un ViewPager sur mon application Wearable. Cependant, lorsque j'essaie d'assigner le ViewPager dans mon XML à une variable, il ne le reconnaît que comme un "View", et non comme un ViewPager. Cela me donne l'erreur ci-dessous:

Error

Lors de la vérification d'autres didacticiels, aucun d'entre eux ne semble avoir ce problème. Ils peuvent tous facilement affecter leur ViewPager à leur variable ...

viewpager.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <android.support.v4.view.ViewPager
        android:id="@+id/viewpager_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
            />

</LinearLayout>

ViewPager.java

/*
*
* VIEWPAGER TUTORIAL
* https://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/
* door the pseudocoder
* */
public class ViewPager extends FragmentActivity {

    private PagerAdapter pagerAdapter;

    /* (non-Javadoc)
      * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
      */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.viewpager);
        //initialsie the pager
        this.initialisePaging();
    }

    /**
     * Initialise the fragments to be paged
     */
    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Monitor.class.getName()));
        fragments.add(Fragment.instantiate(this, CurrentSongOverviewWear.class.getName()));
        this.pagerAdapter  = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);

        ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager_container);
        pager.setAdapter(this.pagerAdapter);
    }

}

C'est cette ligne dans initialisePaging () qui me donne l'erreur:

ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager_container);
-3
Lieven Luyckx 14 août 2017 à 12:41

2 réponses

Meilleure réponse

Parce que vous avez nommé votre classe ViewPager, elle essaie maintenant de diffuser une vue vers votre type de ViewPager qui s'étend de FragmentActivity. Ce n'est, bien sûr, pas un View.

Renommer votre classe - en ViewPagerActivity par exemple - résoudra votre problème. Si vous regardez le code de ce tutoriel, vous verrez qu'ils ont utilisé ViewPagerFragmentActivity

2
0xDEADC0DE 14 août 2017 à 09:43

Renommez simplement votre activité sous un autre nom, par exemple: ViewPagerActivity

Ou convertir la vue au bon format:

android.support.v4.view.ViewPagerpager = (android.support.v4.view.ViewPager) findViewById(R.id.viewpager_container);
0
Minh Nguyen 14 août 2017 à 09:45