2016-11-18 46 views
0

源代码:https://github.com/jamesmccann/android-view-pager-cards/blob/master/app/src/main/java/nz/jamesmccann/cardviewpager/CardActivity.java 我下载它,它不工作,所以我复制在我的项目。但发生了一些错误,我不知道如何修复,虽然我搜索了很多次。 这是CarContainerFragment:android:如何修复错误的构造函数CardPagerAdapter在类CardsActivity.CardPagerAdapter不能应用于给定的类型

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

public class CardContainerFragment extends Fragment { 

    private boolean cardFlipped = false; 

    public CardContainerFragment() { 
     setHasOptionsMenu(true); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragmentcardcontainer, container, false); 

     getChildFragmentManager() 
       .beginTransaction() 
       .add(R.id.container, new CardFrontFragment()) 
       .commit(); 

     return rootView; 
    } 

    public void flipCard() { 
     Fragment newFragment; 
     if (cardFlipped) { 
      newFragment = new CardFrontFragment(); 
     } else { 
      newFragment = new CardBackFragment(); 
     } 

     getChildFragmentManager() 
       .beginTransaction() 
       .setCustomAnimations(
         R.anim.card_flip_right_in, R.anim.card_flip_right_out, 
         R.anim.card_flip_left_in, R.anim.card_flip_left_out) 
       .replace(R.id.container, newFragment) 
       .commit(); 

     cardFlipped = !cardFlipped; 
    } 

    public static class CardFrontFragment extends Fragment { 

     public CardFrontFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.fragmentcard, container, false); 
      return rootView; 
     } 
    } 

    public static class CardBackFragment extends Fragment { 

     public CardBackFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      View rootView = inflater.inflate(R.layout.fragment_card_back, container, false); 
      return rootView; 
     } 
    } 
} 

这是CardsActivity:

import android.app.Activity; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.support.v4.app.FragmentPagerAdapter; 


public class CardsActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activitycard); 

     CardPagerAdapter adapter = new CardPagerAdapter(getFragmentManager()); 
     ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 
     viewPager.setAdapter(adapter); 
    } 

    public class CardPagerAdapter extends FragmentPagerAdapter { 

     public CardPagerAdapter(FragmentManager fragmentManager) { 
      super(fragmentManager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return new Fragment(); 
     } 

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

这是错误,我得到:

Error:(24, 36) error: constructor CardPagerAdapter in class CardsActivity.CardPagerAdapter cannot be applied to given types; 
required: android.support.v4.app.FragmentManager 
found: android.app.FragmentManager 
reason: actual argument android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager by method invocation conversion 

回答

0

此致CardsActivity有不同的进口比GitHub的链路上的一个。

此致

import android.app.Activity; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.support.v4.app.FragmentPagerAdapter; 

Github上

import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentManager; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 

在我看来,你应该使用getSupportFragmentManager()getFragmentManager()(你必须从android.support.v4.app.FragmentActivity而不是从Activity延伸到得到这个方法) 。

+0

我没有看到getSupportFragmentManager()虽然我添加了android.support.v4.app.FragmentActivity。 – Alice

+0

它在这里https://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager()只是扩展你的活动类'公共类CardsActivity extends FragmentActivity {' – pleft

+0

非常感谢! !有效。 – Alice

相关问题