3

FragmentBasics.zipのコード例を調べます

http://developer.android.com/training/basics/fragments/communicating.html

このコード(MainActivity.java)がありました:

ArticleFragment articleFrag = (ArticleFragment)
                getSupportFragmentManager().findFragmentById(R.id.article_fragment);

しかし、クラス全体、layouts(xml)、または値のどこにも*article_fragment*が宣言/設定されていることはありません。それはどこから来たのですか??

4

3 に答える 3

1

R.id.article_fragment現在の例では、レイアウトは大画面デバイスに使用されています。このレイアウトは内部で確認できます。res/layout-large/news_articles.xml

于 2012-12-10T05:32:15.550 に答える
1

ProjectのArticleFragmentクラスを確認します。そのクラスはFragementを拡張し、そのクラスでは、article_view.xmlという名前のxmlを拡張しています。

したがって、基本的に、フラグメントを拡張するクラスのIDを見つけています。

于 2012-12-10T05:33:25.850 に答える
1

これはで使用されるXMLコードですres\layout-large\news_articles.xml

<fragment android:name="com.example.android.fragments.HeadlinesFragment"
          android:id="@+id/headlines_fragment"
          android:layout_weight="1"
          android:layout_width="0dp"
          android:layout_height="match_parent" />

<fragment android:name="com.example.android.fragments.ArticleFragment"
          android:id="@+id/article_fragment"
          android:layout_weight="2"
          android:layout_width="0dp"
          android:layout_height="match_parent" />

fragment属性を持つandroid:name="com.example.android.fragments.ArticleFragmentは、IDを次のように設定します。@+id/article_fragment

article_fragment使用されているIDを見つけるJAVAコードは、このメソッドの55行public void onArticleSelected(int position)目にあります。2ペインレイアウトを使用しているかどうかを確認します。そのため、上部に記載されているXMLファイルはlayout-largeフォルダーにあります(例では)。

于 2012-12-10T06:02:37.473 に答える