2017-02-05 2 views
-1

Also im Grunde erstellen ich eine sehr einfache App, die nur 2 Layouts hat und ich möchte von einem zum anderen richtig gehen. Ich weiß von dem, was ich gelesen habe, dass, wenn Sie einen neuen Bildschirm/Aktivität für dasselbe Projekt erstellen möchten, Sie zuerst das neue Layout erstellen müssen (was ich bereits getan habe), und ich weiß, dass ich jetzt die Aktivität erstellen muss mach etwas zum Manifest, aber ich weiß nicht, was das ist. Ich habe ein paar YouTube-Videos über, aber ich weiß nicht, ob die Tatsache, dass, wenn ich möchte, dass meine neue Aktivität der Standard sein wird, alles ändert.Wie kann ich zwischen Layouts wechseln?

Wie Sie in den angehängten Bildern sehen können, war "activity_questions" das erste Layout, das ich bei der Erstellung des Projekts hatte. Jetzt möchte ich einen neuen Bildschirm/ein neues Layout für die App erstellen, der "noquestions_layout" ist. Ich möchte jedoch das neue Layout, das ich erstellt habe, zu meinem Hauptbildschirm/Aktivität für den Benutzer machen, und meine "activity_questions" die, die immer dann erscheint, wenn meine Datenbank einige Informationen an die App übermittelt.

Wie kann ich das alles machen? Ich weiß, das ist eines der Dinge, die du nur einmal lernen musst ... und das klingt vielleicht sehr einfach, und ich entschuldige mich, wenn es etwas Neues ist. Ich habe vor nicht allzu langer Zeit begonnen, Android-Studio zu lernen.

Sie müssen mir nicht sagen all den Code, ich brauche in meiner App setzen, um nur einige einfache Beispiele mit Führung ... „schaffen Y hier und dann dort setzen X“

First layout/activity

New Wanted layout/activity

+2

Bitte lesen Sie die "Erste App" -Dokumentation auf der Android-Entwickler-Website. Es deckt alle Sachen ab, die Sie gerade gefragt haben –

Antwort

0

ersten beiden Aktivitäten erstellen, Say, Activity_A und Activity_B.

Für die erste Aktivität, diesen Code in dem Manifest:

<activity android:name=".Activity_A"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Für die zweite Aktivität, diesen Code verwenden:

<activity android:name=".SecondActivity "> 
</activity> 

die Aktivität hier, dass, wenn startet die App startet wird die Activity_A, wegen des Intent-Filters im Manifest der Activity_A:

N ow, Da Sie bereits Ihre Aktivitäten haben, die Layouts bereit, wo Activity_A gestartet wird, sobald die App gestartet wird, starten Activity_B von Activity_A, verwenden Sie diesen Code:

Intent intentTour = new Intent(Activity_A.this, Activity_B.class); 
intentTour.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); //This line is optional, better to use it because it won't create multiple instances of the launching Activity. 
startActivity(intentTour); 
+0

Danke! Jetzt verstehe ich, warum es passiert und wie ich es mache, was ich von Anfang an wollte. Ich weiß es zu schätzen Für Ihren letzten Kommentar, was müsste ich tun, wenn ich Activity_B wollte, wenn eine Datenbank einige Informationen an die App sendet? –

+0

Sie meinen, Sie möchten Activity_B starten, wenn eine Datenbank Informationen an die App sendet? –

+0

Richtig, tut mir leid, wenn mein Internet chaotisch ist. Im Grunde wie eine Google Belohnungen App. -Meine Datenbank wird einige Fragen an die App geben, und ich möchte, dass Activity_B mit diesen Fragen startet, wenn die Frage eingeht. Ich habe bereits die Datenbank (MySQL) und ein Skript, um die Daten daraus zu bekommen (PHP-Skript) –

1

Für ein neues Bildschirmlayout erstellen Sie eine neue Aktivität und rufen Sie diese Layoutdatei dort auf.

Um jede Aktivität als erste Aktivität, wenn App gestartet wird, müssen Sie zu manifestieren gehen und schneiden Sie die Intent-Filter-Tag auf die Aktivität fügen Sie zuerst

<activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

Sie starten möchten, wollen Angenommen, eine andere machen Aktivität Beispiel .SecondActivity als Ausgangsaktivität über Intent-Filter-Tag geschnitten und dort einfügen wie diese

<activity android:name=".SecondActivity "> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
<activity android:name=".MainActivity "> 

     </activity> 
+0

Dies beantwortet nicht ganz, wie man von einer Tätigkeit zur anderen geht. –

+0

er war auch verwirrt, was mit Manifest zu tun, wenn eine Aktivität Aktivität in der App starten. Das war die Antwort dafür. – user1111

0

Wenn Sie eine neue Aktivität in Android erstellen Studio, Studio erstellt die entsprechende Ressourcendatei sowie den Manifesteintrag für Ihre Aktivität.

Sagen Sie zum Beispiel, Sie haben zwei Aktivitäten QuestionsActivity und NoQuestionsActivity.QuestionsActivity wird Ihre Standardstartaktivität sein. Um NoQuestionsActivity zu Ihrer Startaktivität zu machen. Öffnen Sie die Manifest-Datei und unter Aktivitäts-Tag von NoQuestionsActivity gehören die Intent-Filter und entfernen Intent-Filter von

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".QuestionsActivity"></activity> 
    <activity android:name=".NoQuestionsActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
</application> 

Um von einer Aktivität zur anderen zu wechseln, etwa von NoQuestionsActivity zu QuestionsActivity verwenden Absicht der folgenden Code-

Intent questionsIntent = new Intent(NoQuestionsActivity.this, QuestionsActivity.class); 
startActivity(questionsIntent); 

Wenn Sie Wert an QuestionsActivity übergeben möchten, übergeben Sie es als Extras im intnet.

Hoffe, das wird helfen.

Verwandte Themen