2017-11-16 2 views
0

Ich habe versucht, einen ViewPager in Android Studio zu erstellen. ich den Fehler:PagerAdapter() kann nicht auf android.app angewendet werden. FragmentManager

PagerAdapter() cannot be applied to android.app FragmentManager 

an der Linie super(fm);

Hier ist mein Code für den Adapter. Muss ich etwas ändern?

package com.example.admin.usthweather; 

import android.app.Fragment; 
import android.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.support.v4.view.PagerAdapter; 
import android.view.View; 

/** 
* Created by Admin on 11/15/2017. 
*/ 

public class HomeFragmentAdapter extends PagerAdapter { 
    private final int PAGE_COUNT = 3; 
    private String titles[] = new String[] {"Hanoi","Paris", "Saigon"}; 

    public HomeFragmentAdapter(FragmentManager fm){ 
    super(fm); 
    } 

    @Override 
    public int getCount() { 
    return PAGE_COUNT; 
    } 

    // Override 
    public Fragment getItem(int page) { 
// returns an instance of Fragment corresponding to the specified page 
    Fragment frag=null; 
    switch (page){ 
     case 0: 
     frag=new Hanoi(); 
     break; 
     case 1: 
     frag=new Paris(); 
     break; 
     case 2: 
     frag=new Saigon(); 
     break; 
    } 
    return frag; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
    return false; 
    } 
} 

Antwort

0

fm in super(fm); ist falsch. Daher nichts davon ist notwendig:

public HomeFragmentAdapter(FragmentManager fm){ 
    super(fm); 
} 

Allerdings vermute ich, dass Sie nicht PagerAdapter Unterklasse wollte, aber entweder oder FragmentStatePagerAdapter. Als docs sagen:

Base class providing the adapter to populate pages inside of a ViewPager. You will most likely want to use a more specific implementation of this, such as FragmentPagerAdapter or FragmentStatePagerAdapter.

Instead of providing a View recycling mechanism directly ViewPager uses callbacks to indicate the steps taken during an update.

0

kein Konstruktor Es in PagerAdapter mit FragmentManager als Parameter ist. Ihr Code ist für FragmentPagerAdapter oder FragmentStatePagerAdapter ähnlich, so dass Sie einen von ihnen verwenden können. Es wird so etwas wie dieses:

public class HomeFragmentAdapter extends FragmentStatePagerAdapter { 

    private final int PAGE_COUNT = 3; 
    private String titles[] = new String[] {"Hanoi","Paris", "Saigon"}; 

    public HomeFragmentAdapter(FragmentManager fm){ 
    super(fm); 
    } 

    @Override 
    public int getCount() { 
    return PAGE_COUNT; 
    } 

    @Override 
    public Fragment getItem(int page) { 
    Fragment frag=null; 
    switch (page){ 
     case 0: 
     frag=new Hanoi(); 
     break; 
     case 1: 
     frag=new Paris(); 
     break; 
     case 2: 
     frag=new Saigon(); 
     break; 
    } 
    return frag; 
    } 
} 

Bitte beachten Sie die korrekte Importdatei für Fragment und FragmentManager von Support-Bibliothek zu verwenden:

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
Verwandte Themen