Android-créer une application avec Java pur et sans XML?

je me demande s'il est possible de créer une application Android avec seulement Java. Pas de XML, pas d'autres choses.

dans Eclipse, lorsque je crée un nouveau projet Android, Le manifeste xml-file et le fichier xml-layout principal sont générés automatiquement. Puis-je supprimer ces fichiers et les remplacer par un fichier Java?

21
demandé sur Bill the Lizard 2011-11-07 17:37:14

5 réponses

Pour les mises en page, vous avez deux options

  1. déclarer les éléments de L'interface utilisateur en XML. Android fournit un vocabulaire XML simple qui correspond aux classes et sous-classes de vue, tels que ceux pour les widgets et layouts.

  2. Instancier les éléments de mise en page lors de l'exécution. Votre application peut créer des objets View et ViewGroup (et manipuler leurs propriétés) de manière programmatique.

Donc pour la première question - oui - vous peut supprimer des fichiers de mise en page xml (si vous le devez).

je pense que vous ne pouvez pas vous débarrasser de l'manifeste.XML..Le cite:

chaque application doit avoir un Androïdmanifest.fichier xml (avec précision du nom) dans son répertoire racine.

13
répondu hovanessyan 2014-05-28 07:34:27

est-il possible d'éviter le XML? Oui, à l'exception du manifeste et peut-être de quelques déclarations thématiques (Je ne suis pas sûr qu'il y ait des équivalents Java publics pour tout ce que nous pouvons configurer via des thèmes).

Est-ce une bonne idée? Cieux, non.

le point derrière le système de ressources est de permettre à Android de vous remettre de manière transparente les ressources nécessaires à l'appareil à l'heure actuelle, sur la base à la fois des caractéristiques permanentes de l'appareil (par exemple, la densité de l'écran) et caractéristiques transitoires du dispositif (p. ex., portrait ou orientation du paysage).

Pour éviter de ressources, vous devrez passer par un tas de if instructions pour déterminer quel morceau de code Java exécuter, en détectant toutes ces choses à la main. Cela devient beaucoup plus compliqué une fois que vous prenez en compte les changements dans Android lui-même, comme de nouvelles modifications de configuration et des valeurs sont ajoutées, ce qui rend difficile pour vous de prendre en charge tout ce dont vous avez besoin dans un rétro-compatible façon.

en cours de route, vous perdrez tous les outils de support (drag-and-drop GUI building, string resource assistants de MOTODEV Studio, etc.), en dehors de L'édition et du débogage Java.

Vous semblez placer vos propres inclinations techniques personnelles avant toutes les autres considérations. S'il s'agit d'un petit projet personnel, c'est peut-être une bonne attitude. Si vous créez du code pour être développé et / ou maintenu par d'autres au fil du temps, cependant, vous devez tenir compte des besoins de ces autres développeurs, et ils peuvent être beaucoup plus ouverts au XML que vous.

6
répondu CommonsWare 2011-11-07 14:10:29

jetez un coup d'oeil à cette vidéo, qui vient d'être postée par l'équipe android: http://www.parleys.com/#st=5&id=2191&sl=8

tout est dans la mise en page et inclut la mise en page des applications utilisant Java, pas XML. Cependant, vous êtes averti que l'équipe android veut que vous utilisiez XML...

2
répondu Todd Davies 2011-11-07 13:43:12

il est possible de créer tous les fichiers de mise en page à partir du code. Mais il est recommandé d'utiliser les fichiers XML.

AndroidManifest.xml ne peut pas être remplacé par le code, puisque le système s'appuie sur les données incluses dans ce fichier.

1
répondu keyboardsurfer 2011-11-07 13:41:30

je suis entièrement d'accord Van de Codage. Si vous avez le bon langage de programmation, vous pouvez écrire des définitions de mise en page beaucoup plus concises qu'avec AXML. Un exemple en C# comment remplacer AXML mises en page

ViewGroup Layout(ViewGroup layout, IList<View> contents) {
    if (contents != null)
        foreach (View v in contents)
            layout.AddView(v);

    return layout;
}
0
répondu Miklos Nemeth 2018-07-12 10:04:00