2010-02-04 19 views
24

Moim głównym widoku mam:Jak podłączyć widok układu z działalności

public class PlayersActivity extends Activity { 
    ViewFlipper flipper; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.playercontainer); 
     flipper = (ViewFlipper) findViewById(R.id.flipper); 
    } 
} 

z tym poglądem:

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <include android:id="@+id/first" layout="@layout/first" /> 
    <include android:id="@+id/second" layout="@layout/playerdetailsview" /> 
</ViewFlipper> 

Wyświetla pierwszy widok poprawnie, ale chcę go mieć połączony z klasą java, więc utworzyłem klasę FirstActivity, w której mogę kontrolować wszystkie moje komponenty w pierwszym widoku , ale jak dołączyć układ first.xml do klasy java FirstActivity?

+0

PlayersActivity już jest klasa Java do kontrolowania swoich komponentów. Jak klasa FirstActivity różni się od PlayersActivity? – RickNotFred

+0

do podziału mojej funkcjonalności w różnych klasach, więc mogę ponownie użyć tego konkretnego układu w innych widokach. –

Odpowiedz

39

Wypowiedz nowy plik xml jest :

  1. Put plik w katalogu res/layout.
  2. W swojej nowej klasie użyj setContentView(R.layout.foo);
  3. Określ swoją nową klasę w swoim manifest file.

Zobacz także temat na declaring layout.

+1

Krok 3 zakłada, że ​​twoja klasa jest działaniem. – RickNotFred

+1

Dodałem w węźle aplikacji (i podążyłem za pozostałymi krokami), ale nadal nie wywołuje klasy, czy definiuję ją poprawnie w manifeście? –

+0

Musisz podać pełną nazwę. Zakładając, że klasa rezyduje w tym samym opakowaniu co swoim manifeście, można skrócić poprzez określenie jako (nota wiodący».”) – RickNotFred

6

1) Utwórz plik xml (na przykład).
2) Umieść w katalogu res/layout.
3) Edytuj i umieść kod układu Android i zapisz go. np

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 
    <ViewFlipper android:id="@+id/viewFlipper1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"></ViewFlipper> 
</LinearLayout> 

4) W swojej nowej klasy aktywności umieścić

setContentView(R.layout.foo); 

do tworzenia aktywności see this answer

Chyba problem z pliku xml jest to, że nie określono dowolny układ dla aktywność.

0

Zmień nazwę z FirstActivity na firstactivity. Układ nie akceptuje czapek, miałem do czynienia z tym samym problemem.

3

Nie tak trudno Link 2 układy po prostu zrobić:

@Override 
    public void onClick(View args0) { 
    setContentView(R.layout.aardelayout); 
} 
Powiązane problemy