web-dev-qa-db-de.com

Mit Fragmentaktivität erstellte ADT-Leeraktivität.

ich bin im Moment wirklich verwirrt, denn wenn ich eine neue Android App mit leerer Aktivität erstelle, wird sie immer mit fragment_main.xml ausgegeben. Ich wollte nur eine leere Aktivität ohne die fragmentierte erstellen. .

im ersten Bild wird die leere Aktivität mit dem Fragment-Layout geliefert.

first image blank activity

das zweite Bild zeigt das erstellte fragment_main

second image blank activity

jetzt bin ich wirklich verwirrt ... dies geschah erst nach dem Update von ADT auf die neueste Version, auf die ich mich bezogen habe: https://stackoverflow.com/questions/22203862/adt-doesnt-create-default-hello -world-but-command-line-does # =

ich wollte nur eine Android App mit leerer Aktivität ohne Fragment-Ansicht machen ...

35

Für diejenigen, die Anweisungen zum Entfernen von Fragmenten aus dem Projekt wünschen:

1) Kopieren Sie den gesamten Inhalt von res/layout/fragment_main.xml. Öffnen Sie activity_main.xml, löschen Sie das FrameLayout und fügen Sie den kopierten Inhalt ein.

2) Löschen Sie fragment_main.xml

3) Löschen Sie in MainActivity.Java die gesamte PlaceHolderFragment-Klasse:

/**
 * 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) Löschen Sie die folgenden Zeilen aus onCreate ():

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

Zu diesem Zeitpunkt sollten Sie bereit sein, das Projekt auszuführen.

27
Ben Jakuben

Sie können die vorherige Vorlage verwenden, indem Sie die Vorlagendateien im SDK-Ordner Android) bearbeiten. Stellen Sie jedoch sicher, dass eine Sicherungskopie des Ordners "BlankActivity" vorhanden ist.

  • Gehen Sie zu / templates/tools/templates/activities/BlankActivity

  • Suchen Sie die Datei template.xml und suchen Sie den folgenden Code

     <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" />
    

und ändern Sie den constraints in constraints="empty".

  • Suchen Sie recipie.xml.ftl und suchen Sie den folgenden Code
    <instantiate from="res/layout/fragment_simple.xml.ftl" to="${escapeXmlAttribute(resOut)}/layout/${fragmentLayoutName}.xml" />
    und kommentiere die ganze Zeile.

  • Suchen Sie die Datei SampleActivity.Java.ftl in root/src/app_package und löschen Sie diese beiden Zeilen
    <#include "include_options_menu.Java.ftl"> <#include "include_fragment.Java.ftl">

  • Suchen Sie fragment_simple.xml.ftl und activity_fragment_container.xml.ftl in der Datei root/res/layout. Kopieren Sie den Inhalt der Datei fragment_simple.xml.ftl in die Datei activity_fragment_container.xml.ftl.

Wenn Sie nun versuchen, eine neue Aktivität zu erstellen, wird dieser Bildschirm angezeigt new activity without fragment

Sie können das Feld Fragment Layout Name leer lassen.

Dies funktioniert gut für mich im Falle einer leeren Aktivität. Ich bin nicht sicher, ob dies der richtige Ansatz ist, Fragmente und alles zu verwerfen, aber das funktioniert für mich.

7
saran

Dies ist eine neue Funktion von ADT Version 22.6.0: http://developer.Android.com/tools/sdk/Eclipse-adt.html

Bearbeiten : Mit den neuesten ADT-Updates gibt es eine neue Vorlage namens "Leere Aktivität", die keine Fragmente enthält. Es ist eine einfache Klasse, die Activity erweitert (auch ohne das Standardmenü).

Beachten Sie, dass es auch eine "Leere Aktivität" gibt, die ActionBarActivity erweitert und Fragmente enthält

6
Muzikant

Vielen Dank an die Person, die dies gemeldet hat. https://code.google.com/p/Android/issues/detail?id=6751

Dies war mein erster Einblick in Android-review.googlesource.com. Beim Stöbern sah ich keine Möglichkeit, das zusammengestellte Patch-Set herunterzuladen, und ich bin nicht sicher, wie ich tools_r22.6 "auswählen" kann. Wenn es einen Thread gibt, der dies erklärt, wäre ein Link wünschenswert.

Hier ist, wie ich es gemacht habe.

Navigieren Sie auf Ihrem Computer zu Ihrem SDK-Ordner und dann zu\tools\templates\activities

Kopieren Sie den BlankActivities-Ordner und fügen Sie ihn in dasselbe Verzeichnis ein.

Benennen Sie BlankActivities_copy in EmptyActivities um

Gehen Sie zu https://Android-review.googlesource.com/#/c/88890/4

Im Abschnitt "Dateien" finden Sie eine Liste mit Links. Über jeden Link gelangen Sie zu der XML-Datei, die dem neu erstellten Ordner "EmptyActivities" hinzugefügt werden muss.

Kopieren Sie die XML-Datei aus dem rechten Bereich in den Pfad\file oben im linken Bereich (der Link war auch der Pfad). Wenn die Datei bereits existiert, löschen Sie den Inhalt und ersetzen Sie ihn. Wenn die Datei nicht vorhanden ist, erstellen Sie sie und kopieren Sie die XML-Datei in die Datei.

Wiederholen Sie dies für jeden der Links.

Schließen Sie Eclipse und öffnen Sie es erneut. Wenn eine der Dateien in einem Editor geöffnet ist, stürzt Eclipse ab.

Vielen Dank an Josiah Gaskin bei google für die unglaubliche 2-Tage-Wende!

Keine Schulungsliteratur verweist auf die Fragmente in der BlankActivity. Ich bin mir sicher, dass ich durch dieses Update unzählige Stunden beim Navigieren in Fragmenten und beim Erlernen einer neuen IDE gespart habe. Danke noch einmal.

5
Chris

Wenn Sie die neueste ADT 22.6.3 (mit Build-Tools 19.0.3) können Sie ein neues leeres Activity erstellen, das keine Fragmente verwendet

4
EyalBellisha

Wenn Sie nicht möchten, dass der Fragmentteil in Ihrer App enthalten ist, deaktivieren Sie einfach die Option Aktivität erstellen im Projekt-Setup-Assistenten und Aktivität und Layout manuell erstellen für dein Projekt.

3
Shubham Naik

Eine Lösung hierfür ist eine Kopie der älteren "Blank Activity" in %Wherever your ADT bundle is%\sdk\tools\templates\activities\.

Wenn jemand eine ältere Version davon hat, kannst du sie umbenennen, platziere sie hier %Wherever your ADT bundle is%\sdk\tools\templates\activities\ und wählen Sie dann beim Starten Ihres Projekts diesen Ordner anstelle von "Leere Aktivität" aus. Wenn Sie also eine Kopie haben, geben Sie diese bitte frei.

3
user3459475

Wir haben eine Lösung dafür gefunden:

Wenn Sie ein Projekt erstellen, wählen Sie die Aktivität "leer". Anschließend wird eine MainActivity-Klasse erstellt, die Activity und ein activity_main.xml-Layout erweitert.

Mit anderen Worten, es gibt Ihnen das Verhalten, das vorher da war.

Dies funktionierte in ADT 22.6.3.

3
Walker Rowe

Ich habe auch das gleiche Problem konfrontiert. Ich habe gerade die Eclipse gelöscht und das ADT-Bundle erneut von http://developer.Android.com/sdk/index.html#download heruntergeladen, um Ihre wiederherzustellen Bei früheren Projekten ändern Sie einfach den Arbeitsbereich zu Ihrem vorherigen. Das hat bei mir funktioniert.

3
Sravani

Kopieren Sie beim Erstellen einer neuen Anwendung einfach den Layoutnamen in den Fragment-Layoutnamen (z. B. activity_main).

Voila !!! Sie erhalten eine Aktivität ohne den Fragmentteil.

Entfernen Sie diesen Teil des Codes aus der Aktivität:

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

Bereinigen Sie das Projekt.

2
Rashid

Nicht sicher, ob dies vollständig funktioniert. Schritte 1) Klicken Sie mit der rechten Maustaste auf Ihr Projekt, gehen Sie zu Eigenschaften-> Android, entfernen Sie die Referenzbibliothek und klicken Sie auf Übernehmen. Jetzt würden Sie Fehler in Ihrem Projekt sehen, gehen Sie zu res-> values-> styles, ersetzen Sie AppBasethemes übergeordnetes Element durch parent = "Android: Theme.Light" .Light.DarkActionBar "

2) Gehen Sie nun zu MainActivity und ersetzen Sie "Erweitert ActionBarActivity" durch "Erweitert Aktivität". Eclipse fordert Sie zum Importieren auf.

jetzt löschen Sie diesen Teil des Codes

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;
    }
}

aus der Aktivitätsklasse

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

Entfernen Sie jetzt alle nicht verwendeten Importe.

3) Gehen Sie zu res-> Layouts-> fragment.xml und kopieren Sie den Code des Fragments in activity_main.xml. Löschen Sie fragment.xml.

Jetzt gehe zu main.xml Ersetze dies

    <item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:title="@string/action_settings"
    app:showAsAction="never"/>

durch

    <item
    Android:id="@+id/action_settings"
    Android:orderInCategory="100"
    Android:title="@string/action_settings"
    Android:showAsAction="never"/>

4) Klicken Sie nun auf Projekt und bereinigen Sie Ihr Projekt

1
Gaurav Pangam

Android hat unsere Stimme gehört :).

Einfach aktualisieren oder Download ADT-Version auf 23.0.2 oder höher.

Jetzt können Sie eine leere Aktivität wie diese auswählen.

enter image description here

1
Burak

Erstellen Sie für kleine Projekte ein Projekt ohne Aktivität und fügen Sie Aktivitäten, Layouts und Manifeste manuell hinzu bzw. bearbeiten Sie sie.

1
antrunner

Ich habe den Ordner BlankActivity (22.6.2) durch den älteren Ordner sdk BlankActivity (22.6.1) ersetzt, der im Verzeichnis tools/templates in Android-sdk vorhanden ist.

1
Hari_krish4

Eine leere Aktivität sollte wirklich einfacher sein. Offenbar steht derzeit eine Korrektur aus: https://code.google.com/p/Android/issues/detail?id=67513&q=blank%20activity&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

Sie können die Option Aktivität erstellen überspringen, wenn Sie Ihr Projekt erstellen und eine Aktivität manuell hinzufügen.

Wenn Sie es wirklich sehr, sehr ärgerlich finden, können Sie versuchen, ADT und das SDK zurückzusetzen:

Laden Sie die 22.3 sdk-Tools von folgender Website herunter: dl-ssl.google.com/Android/repository/##Ihre Plattformversion des sdk hier ##

Zum Beispiel ist osx tools_r22.3-macosx.Zip

Wenn Sie diese Datei entpacken, erhalten Sie einen Ordner mit dem Namen "tools". Verwenden Sie diesen Ordner, um den Ordner mit dem gleichen Namen zu ersetzen, der sich in/path-to-your-Android-installation/Android-sdk-macosx/befindet.

Als nächstes müssen Sie Ihr Eclipse ADT-Plugin deinstallieren. Gehen Sie zur Hilfe -> Neue Software installieren Klicken Sie auf den Link, um zu sehen, was bereits installiert ist. Wählen Sie alle Android Pakete aus und klicken Sie auf Deinstallieren. Starten Sie Eclipse neu

Laden Sie das 22.3 ADT-Plugin von folgender Adresse herunter: http://dl.google.com/Android/ADT-22.3.0.Zip Entpacken Sie diese Datei

Zurück in Eclipse klicken Sie auf Hilfe -> Neue Software installieren. Klicken Sie auf Hinzufügen und wählen Sie die gerade entpackte lokale Datei aus. Überprüfen Sie, was Sie installieren möchten, und klicken Sie auf Installieren. Starten Sie Eclipse erneut

1
Greg Prevost