내 뷰 페이지가 모든 스 와이 핑을 감지하면 내 조각을 호출하여 내 조각을 호출하려고합니다.인터페이스를 통해 조각과 통신하는 활동을 얻을 수 없습니다.
다음은 나의 활동 코드입니다.
public interface SwipeListener {
void swipe();
}
private SwipeListener mSwipeListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
ButterKnife.bind(this);
setSupportActionBar(mToolbar);
int startingFragmentPosition = 0;
mSwipeListener = (SwipeListener) this;
ClothingSectionsPagerAdapter sectionsPagerAdapter =
new ClothingSectionsPagerAdapter(getSupportFragmentManager());
sectionsPagerAdapter.setContext(this);
mViewPager.setAdapter(sectionsPagerAdapter);
mTabLayout.setupWithViewPager(mViewPager);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
mViewPager.setCurrentItem(startingFragmentPosition);
mViewPager.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View view, DragEvent dragEvent) {
mSwipeListener.swipe();
return false;
}
});
}
필자는이 인터페이스를 구현하고 메서드를 재정의합니다. 그러나 내가 앱을 실행할 때. onCreate
메서드에서 this
을 SwipeListener
으로 변환 할 수 없다는 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?
달성하려는 목표를 설명 할 수 있습니까? 스 와이프 동작을 조각으로 보내시겠습니까? –
조각이 데이터를 일찍로드하기를 원합니다. 현재 스 와이프 이벤트가 발생하면 조각에 데이터가 자동으로로드되지 않습니다. –
로드 된 메서드를 activity에서 호출 한 다음 등록 된 조각을 가져 와서 조각에 직접 전달할 수 있습니다 (https://stackoverflow.com/questions/8785221/retrieve-a-fragment-from-a-viewpager). 이것에 대한 청취자 구현은 잘못된 AFAIK입니다. –