2017-11-16 1 views
0

Android Studio에서 ViewPager를 만들려고했습니다. 내가 오류 얻을 : 라인 super(fm);PagerAdapter()를 android.app에 적용 할 수 없습니다 FragmentManager

에서

PagerAdapter() cannot be applied to android.app FragmentManager 

을 여기에 어댑터 내 코드입니다. 아무것도 바꾸어야합니까? super(fm);에서

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

답변

0

fm 은 잘못된 것입니다. 따라서이 전혀 필요하지 않습니다 그러나

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

, 나는 또는 FragmentStatePagerAdapter 중 하나를 당신이 PagerAdapter 서브 클래스 싶지 않다고 생각하지만. docs으로 말 :

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

가 매개 변수로 FragmentManager와 PagerAdapter에 생성자가 없습니다. 코드는 FragmentPagerAdapter 또는 FragmentStatePagerAdapter과 유사하므로 둘 중 하나를 사용할 수 있습니다.

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
:

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

하는 지원 라이브러리에서 FragmentFragmentManager에 대한 올바른 가져 오기 파일을 사용하는 것을 기억하십시오 :이 같은 것

관련 문제