2016-06-16 7 views
-1

Also im Grunde funktioniert meine App so. Es gibt eine Liste von Physik-Gleichungen zur Auswahl. Jede Gleichung (d. H .: Vf = Vi + at) hat ihre eigene gesamte Aktivität (verwendet sowohl xml als auch java). Hier ist ein Beispiel dafür, wie eine Aktivität sieht aus wie eine Gleichung:Erstelle ich meine Android App richtig? Wird es die Leistung in irgendeiner Weise beeinträchtigen?

(http://i.imgur.com/Jx1VIVX.jpg)

Also lassen Sie uns sagen, dass ich 100 Gleichungen für meine Anwendung erstellen möchten. Müsste ich auch 100 separate Aktivitäten erstellen?

- Wenn ja, dann würde es die Leistung beeinflussen, und um wie viel würde die Größe der apk-Datei erhöhen? Gibt es eine einfache Möglichkeit, die Aktivitäten in Verzeichnisse zu kategorisieren? - Wenn nicht, wie würde ich diese "100 separaten Aktivitäten" in weniger Aktivitäten kombinieren?

Bis jetzt habe ich nur 3 Gleichungen gemacht und ich habe für jede eine separate Aktivität erstellt. So sieht die Auswahlseite aus.

(http://i.imgur.com/M3J332n.jpg)

Beispiel: Wenn ich das „Lösen für Endgeschwindigkeit“ aus dem Spinner wählen, wird es den folgenden Befehl tun und die Aktivität für die gewählte Gleichung eröffnet.

+0

Sie sind willkommen, 100 ** Layouts **, definitiv nicht 100 ** Aktivitäten ** –

+0

zu haben Es ist nichts falsch mit Ihrem Ansatz. Keine Performance-Probleme, keine großen apk-Größen, keine Down-Seiten. Abgesehen davon, dass man natürlich 100 Layout-Dateien durchsuchen muss. –

+1

Sie könnten versuchen, sie nach den erforderlichen Eingabe-/Ausgabewerten zu gruppieren. Wenn Sie 3 Gleichungen mit 2 Eingabewerten und 1 Ergebnis und 5 Gleichungen mit 3 Eingabewerten und 1 Ergebnis haben, benötigen Sie nur 2 Aktivitäten. Aber in Ihrem Fall ist es wahrscheinlich besser, die Benutzeroberfläche in Code zu erstellen, ohne irgendeine Layout-XML-Datei zu berühren. Auf diese Weise können Sie dynamisch so viele TextViews oder EditText erstellen, wie Sie benötigen. Sie brauchen * nur * ein Modell, das die Gleichung mit den erforderlichen Ein-/Ausgängen und deren Namen beschreibt. – GPuschka

Antwort

0

Anstatt mehrere Aktivitäten aufzurufen, versuchen Sie, dieselbe Aktivität zu verwenden und die Ansichten und deren Inhalt entsprechend zu manipulieren.

Beispiel

Wenn Benutzer die „Löse für Endgeschwindigkeit“ aus dem Spinner wählt, wird es die folgenden Aktionen aus.

Intent i; 

if(position == 1){ 
i = new Intent(this,SecondActivity.class); 
i.putExtra("Action","Equation1"); 
startActivity(i); 
}else{ 
i = new Intent(this,SecondActivity.class); 
i.putExtra("Action","Equation2"); 
startActivity(i); 
} 
... 

In Ihrem SecondActivity.java

String input1,input2, formula; 

String Action = getIntent().getExtras().getString("Action"); 
//now you have "What to do solved" 

switch(Action){ 
    case "Equation1" : 
     //manipulate your formula for Equation1 
    break; 
    case "Equation2" : 
    //manipulate your formula for Equation2 
    break; 
} 

Sie können sogar bestimmte Ansichten verbergen, wenn Sie sie nicht für eine bestimmte Gleichung benötigen.

Hoffe, das hilft.

+0

Was ist mit den XML-Layouts? Wie, einige Gleichungen erfordern 3 EditText Felder, einige brauchen 4 Felder. Benötige ich immer noch mehrere XML-Layouts, dh separate XML-Layouts für jede Gleichung? – FormulatorX

+0

machen Sie nur ein XML-Layout mit der maximalen Anzahl von EditTexts erforderlich. Wenn zum Beispiel der maximale EditText Required 4 ist, haben Sie 4 EditText im Layout und wenn eine bestimmte Gleichung nur 2 EditText benötigt, dann verstecken Sie die anderen 2. und ändern Sie Ihre Titel in TextViews. –

+0

Oh, ich sehe, danke! – FormulatorX

Verwandte Themen