7

申し訳ありませんが、この質問は、 ApiDemo サンプル コードにアクセスしてEclipseで作業している方に向けたものです。 具体的には、FragmentLayoutというサンプルに基づいてフラグメント アクティビティを作成しようとしています。

次のコードは私にとって問題があります (完全なコードは ApiDemo FragmentLayout.javaShowDetails()メソッドにあります):

                // Execute a transaction, replacing any existing fragment
                // with this one inside the frame.
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                if (index == 0) {
                    ft.replace(R.id.details, details);
                } else {
                    ft.replace(R.id.a_item, details);
                }
                ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                ft.commit();

私が持っている2つの質問:

  1. index == 0とはどう違いindex != 0ますか?

  2. リソース R.id_a_item (検索後、すべての ApiDemos でのみ出現) は、ある種のメニュー ショートカット リソースに属していますが、ここで使用されている理由はまったく不明です。

android.developers ガイドでは、このコードについて説明していません。

4

1 に答える 1

4

index == 0 と index != 0 の違いは何ですか?

0コードは単に前の詳細フラグメントを新しいものに置き換えるように設定されているため、位置とリストの他の位置に違いはありません。

リソース R.id_a_item (検索後、すべての ApiDemos でのみ出現) は、ある種のメニュー ショートカット リソースに属していますが、ここで使用されている理由はまったく不明です。

現在のレイアウトに存在しないため、そのIDを使用すると例外がスローされるため、サンプルのエラーである可能性が最も高いです(API Demos4.2エミュレーターで見つかったプロジェクトを実行しましたが、ビューが見つからないという例外がスローされます...など)。あなたの質問のコードは他のバージョンには存在しないため、おそらくサンプルの最後のバージョンのスリップです。

于 2013-02-18T17:21:02.203 に答える