Android Workshop
Einführung in Android:
Die vorbearbeitete App wird in Android Studio importiert:
Jetzt sollte ein Fenster erscheinen. In diesem sollte der Ordner des Projektes ausgewählt werden.
Um die App zu vervollständigen, muss lediglich ein Input Text eingefügt werden und die Formel zum Berechnen des BMI implementiert werden.
Input Text einfügen:
Dazu muss man die Layoutdatei activity_main.xml öffnen. Dann sollte man folgendes sehen:
Abbildung 1 Layout
CC BY-NC-SA 4.0 Informatik-Werkstatt AAU 2017 SW_T_Android_BMI-Rechner-App 2/5 Informatikwerkstatt.aau.at
Ist dies geschafft, kann das Layout beliebig verändert werden. Unter dem Register Palette findet man einige Elemente, die man dem Layout hinzufügen kann. Unter TextFields (siehe Abb. 2) befindet sich das Element Number(Dezimal), das einfach per Drag and Drop an die gewünschte Position gezogen wird.
Abbildung 2 Text Fields
Um einen einfachen Text anzeigen zu lassen (wie z.B. „BMI Rechner“) wird das Element Large/Medium/Small – Text verwendet.
Eigenschaften vom Element Input Text
Auf der rechten Seite befinden sich die einzelnen Eigenschaften eines Elementes.
Hint: Beim Input Text kann man in der Eigenschaft Hint einen Text angeben, der schon vorher im Textfield steht, bevor man in der Anwendung in das Feld einen Text eingibt (dieser verschwindet dann).
inputType: Sollte man vorher das falsche Text Field genommen haben, kann man unter der Eigenschaft inputType den Typ umstellen. (Number bewirkt auch, dass man in dieses Feld nur Nummern eingeben kann. Bei der Eingabe mit der Tastatur am Handy erscheint die Nummerntastatur).
Layout:width: Hier kann die Breite des Elements in Pixel (px) oder automatisch mit wrap_content und match_parent eingestellt werden. Wrap_content bewirkt aufgrund des gewählten Layouts über die Eigenschaft Layout:weight, wie groß das Element sein soll. Beispielsweise ordnet LinearLayout(horizontal) alle Elemente nebeneinander an. Ist der Eigenschaft Layout:weight bei 2 Elementen der Wert 0.5 zugewiesen (das entspricht 50% des umliegenden Layouts), wird die Größe der Elemente automatisch berechnet und zwar so, dass sie genau gleich groß sind. Match_parent bewirkt, dass die Breite gleich groß ist wie das umliegende Layout.
Layout:height: Bei height kann man die gleichen Einstellungen vornehmen wie bei Width.
Background: Mit Background kann man die Farbe des Hintergrunds geändert werden oder ein Hintergrundbild des Elements angeben werden.
onClick: OnClick wird bei Buttons verwendet, um dem Button über den Methodennamen eine Methode zuzuweisen, die aufgerufen werden soll, wenn der Button angeklickt wird. Diese Methode muss dann in einer Activity programmiert werden.
Id: Die Id ist der Variablenname des jeweiligen Elementes.
Src: Als Src kann der Dateipfad einer Datei angegeben werden. Diese Option gibt es beispielsweise bei einem ImageView, da hier der Dateipfad des Bildes angegeben werden muss.
Die Dateien sollten in einem Ordner in den Ressourcen liegen (mipmap-??dpi). Die verschiedenen Ordner dienen nur dazu, mehrere Auflösungen abzuspeichern. Die App wählt dann beim Starten der Activity die Auflösung selber aus.
Text: Hier kann ein beliebiger Text eingegeben werden, der in einem TextField oder Button etc. stehen soll.
TextColor: Die Eigenschaft TextColor kann entweder manuell mit dem hexadezimalen Wert eingestellt werden oder interaktiv gewählt werden, indem man daneben auf die drei Punkte klickt.
TextSize: Die Größe des Textes kann in den Einheiten Punkt (pt) oder Pixel (px) angegeben werden.
CC BY-NC-SA 4.0 Informatik-Werkstatt AAU 2017 SW_T_Android_BMI-Rechner-App 4/5 Informatikwerkstatt.aau.at
Implementierung:
Die App besteht aus einer Klasse MainActivity, die mit dem layout_main verbunden ist.
public class MainActivity extends Activity {
private double value=0; //Variable in der BMI gespeichert wird private EditText et1;
Das Objekt et1 wird in der Methode onCreate instanziiert und ist vom Typ EditText(InputFeld).
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.größe);
}
In der überschriebenen Methode onCreate werden alle Elemente, die benötigt werden, instanziiert.
Dies erfolgt mit der Methode findViewById, der man die ID des Elements übergibt(R.id.ID). Die ID muss vorher im Layout bei den Elementsettings eingestellt werden. Die onCreate Methode wird automatisch nach dem Starten der Activity aufgerufen.
TODO: Hier muss das 2te InputFeld (Gewicht) instanziert werden.
Die Methode calc wird wie vorher beschrieben beim Anklicken des Buttons aufgerufen.
public void calc(View view) {
try {
double größe = Double.parseDouble(et1.getText().toString());
TODO: Hier muss das zweite InputFeld eingelesen werden. Dies erfolgt, indem man die getText Methode von dem Objekt des Feldes aufruft und danach die Methode toString des Texts aufruft. Der String wird danach mit Double.parseDouble als Zahl vom Datentyp double interpretiert. Danach muss mit den zwei Werten und der BMI Formel der Body-Mass-Index berechnet werden. Dieser wird in der Variable Value gespeichert.
BMI Formel: BMI = (Masse in Kilogramm) : (Größe in Meter)^2;
Hinweis:
Für ^2 multipliziert man die Variable mit sich selber oder benützt die Methode Math.pow(variable,2).
Der weitere Code gibt entweder den Body-Mass-Index automatisch nach dem Anklicken in einem Alertdialog aus, oder es wird eine Fehlermeldung ausgegeben.
new AlertDialog.Builder(this)
.setTitle("BMI Rechner")
.setMessage("Dein BMI ist: " + value)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { }
})
.setIcon(android.R.drawable.ic_dialog_info) .show();
} catch (Exception e) {
new AlertDialog.Builder(this) .setTitle("BMI Rechner")
.setMessage("Fehler bei der Eingabe")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { }
})
.setIcon(android.R.drawable.ic_dialog_alert) .show();
Sollte die App fertig sein, kann sie an ein Handy geschickt werden. Ist ein Handy am PC angesteckt und der richtige Treiber installiert, muss einfach nur auf den grünen Play-Button geklickt werden. Danach wird die App automatisch an das Handy geschickt und gestartet.
Ist kein Handy angesteckt oder der falsche Treiber installiert, kann die App manuell auf das Handy geladen werden, indem man unter Build -> Build APK die APK (Android Package) fertigstellt. Ist dieser Vorgang abgeschlossen, befindet sich nun eine Datei mit der Dateiendung .apk im Projektordner. Diese kann dann manuell auf ein Handy kopiert und installiert werden.
Um die App testen zu können, kann ebenfalls der in Android Studio eingebaute Emulator verwendet werden.