2013-03-16 10 views
5

Sto sviluppando un'applicazione con Xamarin.Layout che non mostra contenuto quando caricato con una nuova attività in Xamarin

Ho tre attività, DiallerActivity, ContactsActivity e SplashActivity - e due layout .axml, Main.axml e Contacts.axml

Il SplashActivity è il primo carico che visualizza uno splashscreen aprendo l'app, al termine carica la DiallerActivity che visualizza il mio layout Main.axml - funziona perfettamente.

Dentro il mio Main.axml disposizione ho un pulsante che se cliccato carichi il ContactsActivity che dovrebbe quindi caricare il Contacts.axml che ha appena 3 pulsanti all'interno e un'etichetta .. nessuno dei quali sono programmati fare qualsiasi cosa.

Il problema è che quando si fa clic sul pulsante, il display si trasforma in una schermata vuota, mostrando ancora la barra di Android nella parte superiore dello schermo .. semplicemente non mostra alcun contenuto dal file .axml.

ho bisogno del Contacts.axml il layout da visualizzare quando si esegue l'attività .. Spero che ho fatto questo chiaro. Il mio codice attuale è sotto.

Codice in DiallerActivity

protected override void OnCreate (Bundle bundle) 
    { 
     base.OnCreate (bundle); 

     // Set our view from the "main" layout resource 
     SetContentView (Resource.Layout.Main); 

Button btnAcceptClick = FindViewById<Button> (Resource.Id.btnAccept); 

btnAcceptClick.Click += delegate { 
      StartActivity (typeof(VoWiFiApplicationFinal.ContactsActivity)); 
     }; 

Codice in ContactsActivity

public class ContactsActivity : Activity 
{ 
    protected override void OnCreate (Bundle bundle) 
    { 
     base.OnCreate (bundle); 

     // setting the contacts.axml as the view 
     SetContentView (Resource.Layout.Contacts); 
    } 
} 

Qualcuno ha qualche idea del perché non è visualizzato il Contacts.axml? Se hai bisogno di me per fornire ulteriori informazioni, basta dire e lo porterò via. Sto usando C# come la mia lingua a proposito, quindi preferirei un aiuto correlato a questo se si applica anche alla domanda in mente. Grazie per aver letto.

codice Contacts.xaml

<?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"> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:id="@+id/toptest" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+/label1" 
     android:text="testlabel" /> 
</LinearLayout> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:id="@+id/testagain" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" /> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:id="@+id/menuBar" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <Button 
     android:layout_width="fill_parent" 
     android:text="ACCEPT" 
     android:id="@+id/btnAccep" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 
    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/btnDeclin" 
     android:layout_weight="1" 
     android:text="DECLINE" /> 
    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/btntes" 
     android:layout_weight="1" 
     android:text="TEST" /> 
</LinearLayout> 
</LinearLayout> 
+0

Puoi pubblicare il layout dei contatti? se usi dall'inizio (per esempio nell'attività Dialer, funziona?) – Luksprog

+0

Ho allegato il codice dal layout dei contatti .. no non ha caricato, e ho avuto alcuni problemi con l'app anche in esecuzione se ho cambiato che all'inizio dell'app Dialer. –

+1

Sto ottenendo la stessa identica cosa; OnCreate della mia seconda attività si attiva e la chiamata a SetContentView non genera eccezioni, ma ottengo una visualizzazione vuota anche se ho markup (apparentemente valido) nel mio .axml? – sh1rts

risposta

0

Sembra che ci sia un bug in Xamarin da qualche parte. Ho anche ottenuto uno schermo vuoto (ad eccezione della barra delle azioni) quando ho rinominato il file .axml avanti e indietro e ho sperimentato le stringhe nei valori \ strings.xml, a volte dando loro lo stesso nome del file .axml. Non sono sicuro che le stringhe abbiano a che fare con questo, ma ricordo di aver ricevuto qualche tipo di errore durante la compilazione a un certo punto.

In ogni caso, la soluzione per me è stato quello di

  1. Backup il contenuto del .axml file e cancellare completamente il file.
  2. Creare un nuovo file .axml con un nome diverso da quello originale.
  3. Incollare il contenuto di backup nel nuovo file.
  4. Rinomina il nuovo file con il vecchio nome.

Successivamente ho eseguito un test e tutto ha funzionato di nuovo.

Problemi correlati