2016-11-18 19 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

相關問題