Layout dinamico vs XML in Android?

Sono nuovo allo sviluppo di Android e ho iniziato a creare il mio UI. Vedo che puoi creare dynamicmente qualcosa come questo ( Layout dinamico ):

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); TextView tv = new TextView(this); tv.setText("Name"); ll.addView(tv); EditText et = new EditText(this); ll.addView(et); Button b = new Button(this); b.setText("Ok"); ll.addView(b); } 

ma vedo anche che netbeans ha un file Resources-> layout-> main.xml . Quindi è ansible creare un layout XML per l'interface utente ( Declaring layout XML ):

  • Come passare i dati da Javascript a Android WebView in questo caso?
  • Progettazione di EditText con angoli arrotondati e ombra interiore
  • Come leggere i dati in block dal caricamento del file del telefono cellulare in Android
  • Android Studio - come utilizzare le librerie (da progetti di eclipse)
  • Chiamando startIntentSenderForResult da frammento (Android Billing v3)
  • fai clic su notifica per passare all'attività corrente
  •  <?xml version="1.0" encoding="utf-8"?> <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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, AndroidTest" /> </LinearLayout> 

    Quindi la mia domanda è che dovrei usare? cosa si raccomanda e quali sono i pro / contro dei layout dynamic vs XML nello sviluppo di Android?

  • MapView in Frammento (Android 4.0 o superiore)
  • Inserisci il carattere tra la posizione del cursore nel text di modifica
  • Posso scrivere iPhone nativi, Android, Windows, applicazioni BlackBerry utilizzando Python?
  • Come catturare l'image e salvarlo in una scheda SD
  • Riconoscimento vocale vocale di Android: Chiamata ripetuta di SpeechReceachzer.startListening () non riesce in JB 4.1.2
  • Effettuare una chiamata da un dispositivo Android dual sim usando adb
  • 6 Solutions collect form web for “Layout dinamico vs XML in Android?”

    Utilizza file di risorsa XML di layout.

    In primo luogo, i set di risorsa (ad es., res/layout-land/ in aggiunta a res/layout/ ) consentono di definire più UI da utilizzare in diverse circostanze, con il sistema che sceglie automaticamente quello giusto, se necessario. L'equivalente in Java sarebbe un insieme brutto di istruzioni if o switch .

    In secondo luogo, ci sono strumenti che possono aiutarti a creare quelle risorse di layout con successo. Anche se l'edificio GUI di Eclipse "drag-and-drop" non è la tua tazza di tè (ad esempio, stai utilizzando NetBeans), Lint aiuterà a evidenziare difetti nei tuoi schemi, per i quali metterà in evidenza solo un sottoinsieme nella codice Java equivalente.

    Terzo, tende ad essere più terse, quindi se stai scrivendo questa roba a mano, l'XML sarà less digitando.

    In quarto luogo, circa il 98% di tutti i codici di esempio troverai i file XML di layout e circa il 98% di tutte le risposte dell'interface utente trovate qui su StackOverflow (e altre risorse di supporto) presuppongono l'utilizzo di file XML di layout. Mentre siete liberi di evitare XML – forse siete stati attaccati da parentesi angolari come un bambino o qualcosa di più – sarai nuotata a monte, combattendo la corrente rispetto a quello che molti sviluppatori Android fanno.

    Raccommand di utilizzare i layout xml per la maggior parte dei tuoi progetti. È ansible inserire i layout in diverse cartelle, ad esempio:

    layout-terra -> per il paesaggio

    layout-port -> per ritratto

    layout-v15 -> per la versione android> = 15

    layout-sw600dp -> per schermi con una certa width

    Utilizzando questi classificatori di risorse, puoi rapidamente avere una vasta gamma nei tuoi layout per supportre l'ampia gamma di dispositivi android, senza wherer codificare molto in più.

    Nella mia opinione, questo è il più grande vantaggio di utilizzare le risorse xml vs creare tutti i layout in modo dinamico. Per ulteriori informazioni, vedere questo link sulle risorse

    Il layout basato su XML dipende dal casting, in quanto è necessario utilizzare:

      Button myButton = (Button) findViewById(R.id.my_button); 

    in modo da avere un casting e tempo che richiede la ricerca XML. Quando si utilizza la creazione dynamic di un UI è molto più difficile gestirlo. Devi organizzare tutto, ma non hai bisogno di lanciare tanto.

    Preferisco la terza soluzione – RoboGuice utilizza il model di iniezione di dipendenza e non ti interessa fare casting e è più veloce creare un'app. Inoltre più flessibile. Considera di avere un field di text normale. Poi si desidera modificarlo nell'area di text. In RoboGuice è solo questione di due modifiche (tranne le modifiche dell'utilizzo). È anche più veloce quando si utilizza il context (il context è molto object di consumo di memory e la memorizzazione del riferimento è segno di una ctriggers codifica).

    Quindi il mio consiglio è: utilizzare XML a causa della sua semplicità per gestire l'interface utente. Utilizzare RoboGuice per codificare velocemente.

    Beh, dichiaro mu UI in xml (99% del tempo), perché è più facile per me lavorare in questo modo.

    È buona pratica separare la logica UI e codice, l'XML è più facile per descrivere l'interface utente (considera di utilizzare questo vecchio progettista o passare a Eclipse IDE ed è il suo progettista)

    Inoltre, un'applicazione android può avere disegni multipli (per telefoni e tablet) e sarà doloroso per il codice a mano che in Java

    Semplicemente, utilizzare XML

    Preferisco XML per la maggior parte delle cose in quanto ti permette di separare i contenuti dal codice e tende ad essere più pulito da modificare soprattutto quando il progetto viene grande e tu dimentichi di quello che hai scritto un po 'fa. Utilizzando XML e stili ti consentirà di get un aspetto e un aspetto coerenti in tutta l'applicazione. Consente inoltre al sistema di layout di prendersi cura del sollevamento pesante e non concludenetworking con viste che abbiano un riferimento al context della tua attività. (Che è cattivo, quando si ruota e la tua attività viene ricreata). Nel complesso tende ad essere un'opzione più veloce e se è ansible farlo in XML rispetto a quello che mi piace. La maggior parte delle articture e dei libri di android sembrano seguire anche questa configuration. (Vedi Android Dev Documenti, Mark Murphy di CommonsWare)

    Dinamico ha l'effetto che è in grado di personalizzare alcune cose in modi più avanzati e può risolvere alcuni problemi di layout abbastanza facilmente. Ci sono alcuni avanti diversi da quello, ma preferisco fare tutto in XML in primo luogo e se non può essere fatto o è duro allora farlo nel codice. Alcune cose possono essere fatte in XML molto più facilmente che anche nel codice.

    È completamente la tua scelta. Probabilmente troverai che molti sviluppatori Android utilizzano XML per codificare i loro layout dell'applicazione, dal momento che questo è stato specificamente progettato per questo. Tuttavia io sono personalmente proveniente da uno background di sviluppo del gioco e non ho bisogno veramente degli widget UI forniti da Android, quindi quando uso sempre un widget UI, lo codice semplicemente in java.

    Spero che aiuti.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.