Исходный код: 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
Я не вижу getSupportFragmentManager() хотя я добавил android.support.v4.app.FragmentActivity. – Alice
Здесь https://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#getSupportFragmentManager() просто расширяет ваш класс активности 'public class CardsActivity extends FragmentActivity {' – pleft
Большое спасибо! ! Это сработало. – Alice