2011-07-22 10 views
3

私は断片で私の最初のアンドロイドアプリをコーディングしています。ここに私の問題があります。私は主な活動と3つの断片を持っています。 3つのフラグメントはすべて同じクラスなので、3つのフラグメントはすべて同じレイアウトです。しかし、私はすべての断片がそのレイアウトで異なるタイトルを持つ必要があります。しかし、私は必要なTextViewを選択することはできません。なぜならこれらのすべての脆弱性TextViewsは同じレイアウトのため同じIDを持っているからです。これを行う簡単な方法がいくつかあります。1つのアクティビティの問題と同じフラグメント

ありがとう

答えて

4

、あなただけのその特定のフラグメントにするたびに、検索の範囲を減らすためにf1.getView().findViewById(id)f2.getView().findViewById(id)f3.getView().findViewById(id)を試みることができます。

しかし、私はFragmentsを使用する点がモジュール性を向上させ、すべてのビューをアクティビティに公開する必要性を避けることだと思います。代わりにフラグメントによって制御することができます。フラグメント内でビューが解決された後、使用するアクティビティーのフラグメントのsetTitle()メソッドを与えることができます。

+0

ああ...それは簡単でした。とても残念な質問と感謝のために申し訳ありません – Semanticer

1

各クラスは、レイアウトの独自のインスタンスを膨らませることになるので、IDは問題ないはず。同じIDで試してみてください。

+0

しかし、私はgetActivity()を介してこのTextViewに到達する方法を知らない。findViewById(R.id.agenda_title); – Semanticer

+0

fragment.getView()を使用してください。findViewById(R.id.agenda_title) –

-1

「フラグメント」の下にUIコンポーネントがある場合は、レイアウト内の各コンポーネントごとに異なるIDを指定する必要があります。

<LinearLayout 
    android:id="@+id/LinearLayout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <TextView 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="#ff0000" 
     android:text="Header" 
     /> 

    <TextView 
     android:id="@+id/body" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="#00ff00" 
     android:text="Body" 
     /> 

    <TextView 
     android:id="@+id/footer" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="#0000ff" 
     android:text="Footer" 
     /> 

</LinearLayout> 

メインXMLレイアウト内の他のXMLフラグメントを意味する場合は、同じIDを使用できますが、別のXMLフラグメントでも使用できます。あなたのフラグメントf1f2f3を考えると

関連する問題