2017-08-14 2 views
-3

gegossen wird [gelöst]

Ich versuche this turorial zu folgen einen ViewPager auf meiner Wearable Anwendung zu bekommen. Wenn ich jedoch versuche, den ViewPager in meinem XML einer Variablen zuzuordnen, wird diese nur als "View" und nicht als ViewPager erkannt. Das gibt mir den Fehler unten:findViewById auf einem ViewPager gibt ‚Android.view.View‘, kann nicht auf ViewPager

Error

Wenn andere Tutorials Kontrolle, keiner von ihnen scheint dieses Problem zu haben. Sie alle können leicht ihre ViewPager ihrer Variablen zuweisen ...

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); 
    } 

} 

Es ist diese Linie in initialisePaging(), die gibt mir den Fehler:

ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager_container); 
+0

poste deine Importe danke. –

+0

Die Antwort von Deadcode hat es bereits repariert, aber danke für die Antwort! –

Antwort

2

Weil Sie Ihre Klasse ViewPager genannt, versucht es nun einen Blick auf Ihre Art von ViewPager zu werfen, die von FragmentActivity erstreckt. Dies ist natürlich kein View.

Umbenennen Ihrer Klasse - zum Beispiel ViewPagerActivity - wird Ihr Problem beheben. Wenn Sie den Code dieses Tutorial anschauen, werden Sie sehen, dass sie verwendet ViewPagerFragmentActivity

+0

Oh mein Gott ..... Was für ein dummer Fehler, einen Tag zu verschwenden .... Vielen Dank! Ich werde deine Antwort bestätigen, wenn stackoverflow es mir erlaubt! –

0
  1. Stellen Sie sicher, importiert android.support.v4.view.ViewPager
  2. ändern Aktivität Namen. ViewPager Selbst eine Klasse. Muss dies umbenennen.

Beispiel

public class ViewPagerActivity extends FragmentActivity { 
+0

war nicht das Problem, aber danke für die Antwort! –

+0

@LievenLuyckx ändern Activity Name –

0

einfach Ihre Aktivität auf einen anderen Namen umbenennen, zum Beispiel: ViewPagerActivity

oder die Aussicht auf richtige Format gegossen:

android.support.v4.view.ViewPagerpager = (android.support.v4.view.ViewPager) findViewById(R.id.viewpager_container);