35 votes

Activité vide ADT créée avec l'activité fragment..

Je suis vraiment perdue car à chaque fois que je crée une nouvelle application Android avec une activité vide, elle sort toujours avec fragment_main.xml... je voulais juste créer une activité vide sans le fragment...

dans la première image, l'activité vierge est accompagnée de la disposition des fragments

first image blank activity

la deuxième image montre le fragment_main créé

second image blank activity

Maintenant je suis vraiment confus... cela ne s'est produit qu'après la mise à jour de l'ADT vers la dernière version. j'ai consulté ce fil de discussion : =">Adt ne crée pas de hello world par défaut mais la ligne de commande le fait

Je voulais juste faire une application Android avec une activité vide sans vue fragmentaire...

27voto

Ben Jakuben Points 2049

Pour ceux qui souhaitent obtenir des instructions sur la manière de supprimer les fragments du projet :

1) Copier tout le contenu de res/layout/fragment_main.xml. Ouvrez activity_main.xml, supprimez le FrameLayout et collez le contenu copié.

2) Supprimer fragment_main.xml

3) Dans MainActivity.java, supprimez toute la classe PlaceHolderFragment :

/**
 * A placeholder fragment containing a simple view.
 */
public static class PlaceholderFragment extends Fragment {

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main,
                    container, false);
        return rootView;
    }
}

4) Supprimer les lignes suivantes de onCreate() :

if (savedInstanceState == null) {
    getSupportFragmentManager().beginTransaction()
            .add(R.id.container, new PlaceholderFragment()).commit();
}

À ce stade, vous devriez être prêt à exécuter le projet.

7voto

saran Points 108

Vous pouvez utiliser le modèle précédent en modifiant les fichiers du modèle dans le dossier Android SDK. Mais assurez-vous que vous avoir une sauvegarde du dossier "BlankActivity".

  • Aller à /templates/tools/templates/activities/BlankActivity

  • Localiser le template.xml et localisez le morceau de code suivant

     <parameter
      id="fragmentLayoutName"
      name="Fragment Layout Name"
      type="string"
      constraints="layout|unique|nonempty"
      suggest="fragment_${classToResource(activityClass)}"
      default="fragment_main"
      help="The name of the layout to create for the activity's content fragment" />

et modifier le constraints à constraints="empty" .

  • Localiser recipie.xml.ftl et localisez le morceau de code suivant
    <instantiate from="res/layout/fragment_simple.xml.ftl" to="${escapeXmlAttribute(resOut)}/layout/${fragmentLayoutName}.xml" />
    et commenter toute la ligne.

  • Localiser SampleActivity.java.ftl fichier à l'intérieur Racine/src/app_package et supprimer ces deux lignes
    <#include "include_options_menu.java.ftl"> <#include "include_fragment.java.ftl">

  • Localiser fragment_simple.xml.ftl y activité_fragment_container.xml.ftl fichier à l'intérieur Racine/res/layout . Copier le contenu de Fichier fragment_simple.xml.ftl à activité_fragment_container.xml.ftl fichier.

Maintenant, lorsque vous essayez de créer une nouvelle activité, vous obtenez l'écran suivant new activity without fragment

Vous pouvez laisser le Nom de la présentation du fragment champ vide.

Cela fonctionne bien pour moi dans le cas d'une activité vierge. Je ne suis pas sûr que ce soit la bonne approche, avec l'élimination des fragments et tout le reste, mais cela fonctionne pour moi.

6voto

Muzikant Points 2073

Il s'agit d'une nouvelle fonctionnalité de la version 22.6.0 de l'ADT : http://developer.Android.com/tools/sdk/eclipse-adt.html

Editer : Avec les dernières mises à jour de l'ADT, il existe un nouveau modèle appelé "Activité vide" qui n'a pas de fragments. Il s'agit d'une classe simple qui étend Activity (Même sans le menu par défaut).

Remarquez qu'il existe également une "activité vierge" qui étend ActionBarActivity et comporte des fragments

5voto

Chris Points 41

Merci à la personne qui a signalé ce problème, https://code.google.com/p/Android/issues/detail?id=67513

C'est ainsi que j'ai découvert Android-review.googlesource.com. En fouillant un peu, je n'ai pas vu de moyen de télécharger l'ensemble des patchs qui ont été mis en place et je ne suis pas sûr de savoir comment "choisir" tools_r22.6, s'il y a un thread qui l'explique un lien serait apprécié.

Voici comment j'ai procédé.

Sur votre machine, naviguez jusqu'au dossier SDK puis \tools\templates\activities

Copiez le dossier BlankActivities et collez-le dans le même répertoire.

Renommer BlankActivities_copy en EmptyActivities

Aller à https://Android-review.googlesource.com/#/c/88890/4

La section Fichiers contient une liste de liens. Chaque lien vous dirige vers le fichier xml qui doit être ajouté au nouveau dossier EmptyActivities que vous avez créé.

Copier le xml du panneau de droite dans le chemin d'accès \file en haut du volet gauche (le lien était aussi le chemin). Si le fichier existe déjà, supprimez son contenu et remplacez-le. Si le fichier n'existe pas, créez-le et copiez le xml dans le fichier.

Répétez l'opération pour chacun des liens.

Fermez et rouvrez Eclipse. Si l'un des fichiers est ouvert dans un éditeur, Eclipse se bloque.

Merci à Josiah Gaskin de google pour l'incroyable délai de 2 jours !

Aucune documentation de formation ne fait référence aux fragments de l'activité BlankActivity. Je suis sûr que cette correction m'a permis d'économiser d'innombrables heures à essayer de comprendre comment naviguer autour des fragments tout en essayant d'apprendre un nouvel IDE. Merci encore.

4voto

EyalBellisha Points 1042

Si vous téléchargez la dernière version de ADT 22.6.3 (avec les outils de construction 19.0.3), vous aurez la possibilité de créer un nouveau fichier Empty Activity qui n'utilise pas de fragments

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X