0

私はAndroidに比較的慣れていないので、簡単なアプリになると思いますが、ビュー/アクティビティフローに関連する問題が発生し、理解できません。

Viewpagerを使用してタブを作成するfragmentActivityがあり、それらのタブはそれぞれ独自のフラグメントクラスであり、すべて正常に機能していますが、選択すると別のタブに移動するときに、タブの1つにリストを表示させる必要があります。ビュー」、私の問題は、最初のリストを作成する方法と、そのリスト内のアイテムのクリックを処理して新しいビューに移動し、タブが所定の位置に留まり、戻るボタンがアプリを終了しないようにする方法です。

現在、iveはフラグメントをarrayAdapterを使用してそれ自体を構築するリストフラグメントと交換しました。これはリストに関しては機能しましたが、onclick()メソッドを使用して上に移動する方法を理解することはできません。次の画面では、タブを失ったり、戻るボタンを終了したりすることはありません。

したがって、A、リストフラグメントが進むべき道であるかどうか、またはBが新しい画面に正しく移動する方法であるかどうかはわかりません。

必要に応じてコードを投稿できますが、前述のクラスの非常に一般的な実装であるため、コードが役立つかどうかはわかりません

4

2 に答える 2

1

リスト内のアイテムのクリックを処理するコールバックはonListItemClickです。

新しい画面を表示する限り、FragmentTransactionを使用してフラグメントを新しいものに置き換えることができます。これをViewPager内で行うと、少し厄介になります。コードは次のようになります。

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.some_containging_view, new SomeFragment())
    .addToBackStack(null).commit();

それ以外の場合は、新しいアクティビティを起動するだけで済みます。これは簡単ですが、タブを複製しない限り、新しい画面にタブが表示されないことを意味します。

于 2013-03-07T23:57:33.300 に答える
0

エレガントなソリューションがついにここで見つかりました。リストフラグメントの周りにラッパーフラグメントを使用するため、ページャーはラッパーに関係します。一方、ラッパー内では、私の心の欲望に合わせてフラグメントトランザクションを実行できます。リンクされたコードは、getChildFragmentManager( )バックスタックのものを機能させるには、support.appから通常のfragmentmanager()に変更する必要があります。

于 2013-03-12T03:32:26.237 に答える