2012-12-15 12 views
16

Chcę utworzyć układ interfejsu użytkownika w XML i umieścić go jako element podrzędny w istniejącym widoku (będzie wstawiany wiele razy).Tworzenie widoków programowo za pomocą XML na Androidzie

Na przykład, tutaj jest to, co plik XML będzie zawierać:

<RelativeLayout 
    android:id="@+id/relativeLayout1" > 
    <Button android:id="@+id/myButton" 
     android:text="@string/mystring" /> 
</RelativeLayout> 

Teraz otrzymuję LinearLayout macierzystą a teraz chce dodać, że plik XML jako widok dziecka, np:

LinearLayout linear = (LinearLayout)findViewById(R.id.myLayout); 
//need to create a view object from the xml file 
linear.addView(myXmlObject); 

Czy można przekonwertować zasób XML na typ widoku? Jeśli tak, to jak mam to zrobić?

+1

@Eric Och, wow, przegapiłem to. Ale poczekaj! – Sam

+1

@Sam Jak ja nawet ... Po prostu ... ok, całkowicie mnie tam kupiłeś. – Eric

+0

Czuję się tak jak ty, prawdopodobnie powinieneś szukać jakiegoś adaptera. – FoamyGuy

Odpowiedz

61

Wierzę, że chcesz LayoutInflater. Załóżmy, że Twój przykładowy plik XML znajduje się w pliku custom_layout.xml:

LayoutInflater inflater = LayoutInflater.from(context); 
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.custom_layout, null, false); 

LinearLayout linear = (LinearLayout)findViewById(R.id.myLayout); 
linear.addView(layout); 
+0

Dzięki stary. zaoszczędziłeś mój czas –

+0

W jaki sposób obsłużyłeś kliknięcie przycisku? Mam na myśli kliknięcie przycisku każdego wiersza ma inną funkcję. – user4057066

Powiązane problemy