Androidです。ViewPagerで現在のインターフェイスのFragmentを取得する
2022-02-17 22:59:07
プロジェクトでは、ViewPagerに同じ種類のFragmentを表示する必要があり、その数は動的ですが、PagerAdapterはgetCurrentFragmentのようなメソッドを提供してくれません。
データとソースコードを見ると、PagerAdapterにsetPrimaryItem(ViewGroup container, int position, Object object)というメソッドがあり、そこで現在のFragmentを取得できるので、それを記録し、getCurrentFragmentメソッドを我々のPagerAdapterに記述して、現在のインターフェースのFragmentを外部に取得するようにしているのです。
public class XXXPagerAdapter extends FragmentStatePagerAdapter {
private XXXFragment mCurrentFragment;
private List<XXX> mList;
public XXXPagerAdapter(FragmentManager fm, List<XXX> list) {
super(fm);
mList = list;
}
@Override
public Fragment getItem(int position) {
return XXXFragment.newInstance(mList.get(position));
}
@Override
public int getCount() {
return mList == null ? 0 : mList.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
XXXFragment fragment = (XXXFragment) super.instantiateItem(container, position);
return fragment;
}
//---------------------- Here's the kicker -----------------
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
mCurrentFragment = (XXXFragment) object;
super.setPrimaryItem(container, position, object);
}
public XXXFragment getCurrentFragment() {
return mCurrentFragment;
}
}
ここでは、FragmentStatePagerAdapter は PagerAdapter を継承しています。
Activityでは、このように呼び出すだけです。
mPagerAdapter.getCurrentFragment();
参考:http://www.cnblogs.com/englefly/p/4222953.html
関連
-
ADBサーバーがackしない問題の解決策(ADB接続の問題)
-
ADBサーバーがACKしない問題を解決 (pro-test)
-
RecyclerViewです。アダプタが接続されていないため、レイアウトをスキップする
-
AndroidManifest.xml は、アプリが Google 検索でインデックス化されていないことを警告しています。
-
BUG: android アクティビティはエクスポートされるか、インテント・フィルタを含む必要があります。
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
Manifest merger failed : Android 12以降をターゲットとするアプリは、明示的な指定が必要です。
-
Android用ニュースアプリの簡単な実装です。
-
Android Studioのインポートプロジェクトが表示されます。ファイルをクランチするのに失敗しました
-
java.util.Iterator java.util.List.iterator()' で null オブジェクト参照例外が発生した場合の解決策を紹介します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Androidで「デフォルトのアクティビティが見つからない」問題を解決する
-
RecyclerView がアダプタが接続されていませんと表示され、レイアウトソリューションをスキップする
-
リターンスタックpopBackStack()のAndroidフラグメント、リターンonResumeの問題
-
Eclipse &プラグインのよくある使用エラーとコンパイルエラー
-
Android 開発の問題点:ActivityNotFoundException: 明示的なアクティビティクラスを見つけることができません
-
Android LayoutInflaterの原則の分析は、ビュー(a)のステップの深い理解によってあなたのステップを取る
-
Androidリストウィジェット開発詳細
-
Android ProgressBar解説 ProgressBarの色を変更する
-
android ImageViewの割り当て問題 setImageResourceとsetImageBitmap
-
ColorDrawableの簡単な使い方