ビューパージャがスワイプを検出したときに自分のアクティビティを呼び出してフラグメントを呼び出そうとしています。インターフェイス経由でフラグメントと通信するためのアクティビティを取得できません
ここに私のアクティビティコードがあります。
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
をキャストできないとクラッシュします。これをどうやって解決するのですか?
達成しようとしていることを説明できますか、スワイプアクションをフラグメントに送信しますか? –
断片のデータ読み込みが早く始まるようにします。現在、スワイプイベントがあると、フラグメントはデータを自動的にロードしません。 –
loadメソッドをアクティビティから呼び出して、フラグメントに直接渡すことができます(https://stackoverflow.com/questions/8785221/retrieve-a-fragment-from-a-viewpager)。これに対するリスナの実装はAFAIKが間違っています。 –