Gdybym na przykład mieć pusty układ takiego:Dodaj wiele widoków niestandardowych układ programowo
layout1.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
i niektórych innych Layout tak:
layout2.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"
android:layout_weight="1"/>
</LinearLayout>
Chciałbym dodać layout2.xml
do layout1.xml
p rogrammatycznie. Musiałbym mieć wiele różnych wersji layout2.xml
, które chciałbym dodać, kiedy chcę. Każdy miałby inny tekst na TextView i przyciski.
W przypadku regularnego Android View ja zwykle zrobić podobnie jak ten z addView
:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv1 = new TextView(this);
tv1.setText("HELLO");
my_linear_layout.addView(tv1);
Button btn2 = new Button(this);
bt2.setText("WORLD");
my_linear_layout.addView(btn2);
}
Jak mogę to zrobić, jeśli nie mam coś prostego jak TextView lub przycisk, a jeśli mam mój własny zdefiniowany xml View?
Czy byłoby możliwe umieszczenie wszystkich widoków wewnątrz adaptera, jak w przypadku ListView, a następnie uzyskanie go w razie potrzeby i wystarczy zadzwonić pod numer addView
w tych widokach?
Korzystanie LayoutInflator to zrobić Zobacz http://stackoverflow.com/questions/2335813/how-to-inflate -jeden-widok-z-układem – user3917131