我正在用片段编写我的第一个Android应用程序,这是我的问题。我有主要活动和3个片段。所有3个片段都是同一个类,因此所有3个片段具有相同的布局。但我需要每个片段在该布局中具有不同的标题。但我无法选择我需要的TextView,因为所有这些碎片TextViews具有相同的ID,因为相同的布局。有没有简单的方法来做到这一点。
感谢名单
答案 0 :(得分:4)
鉴于您的片段f1
,f2
,f3
,您可以尝试f1.getView().findViewById(id)
,f2.getView().findViewById(id)
,f3.getView().findViewById(id)
来缩小范围每次只搜索那个特定的片段。
但是,我认为使用Fragments的目的是改进模块化并避免必须将所有视图公开给Activity。它可以由Fragment控制。您可以在Fragment中解析视图,然后在Fragment上为活动提供setTitle()
方法。
答案 1 :(得分:1)
ID应该无关紧要,因为每个类都会膨胀自己的布局实例。尝试使用相同的ID。
答案 2 :(得分:-1)
如果在'fragment'下你是指一个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片段!