Android Development Tutorial - Part 3 - "Eingabe & Ausgabe"

in #android6 years ago

Eingabe & Ausgabe


Nachdem wir im zweiten Teil unseres Android Tutorials einen Knopf hinzugefügt haben, welcher bis jetzt einen einfachen Toast anzeigt, kommen wir heute dazu, wie wir die Eingabe der Nutzer verwalten, um sie schließlich wieder auszugeben.

 

Texteingabefeld


Die wohl bekannteste Art, eine Nutzerabfrage zu machen, ist über ein Texteingabefeld. Unter Android wird dieses Feld als "EditText" bezeichnet. Die Erstellung eines solchen Feldes ist ziemlich ähnlich wie bei unserem Knopf, wir fügen zu erst einen Code Schnipsel in unsere "activity_main.xml", über dem Knopf, ein, bevor wir in unserer Java-Klasse an die Programmierung gehen.

XML

<EditText
    android:id="@+id/eingabe"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/eingabe"
    android:inputType="text"/>

Die ersten drei Punkte sind uns bereits bekannt. Neu sind die unteren beiden, nähmlich "android:hint" und "android:inputType".
android:hint => Hier wird ein String eingetragen, welcher leicht grau hinterlegt im Eingabefeld stehen soll, wenn es gerade nicht gefüllt ist. Hierfür legen wir in der "strings.xml" einen neuen String an. Ich habe ihn folgendermaßen genannt:

<string name="eingabe">Hier kommt Text rein!</string>

android:inputType => Hier wird angegeben, wie die Tastatur formatiert werden soll. Durch "text" wird eine ganz normale Tastatur angezeigt. Mehr zu den Tastaturen gibt es beim Unterpunkt "Tastaturen".

 

Durch laden in den Emulator würdet ihr jetzt sehen, dass das Eingabefeld und der Knopf sehr ungünstig formatiert sind. Daher müssen wir dem Knopf unbedingt folgendes Attribut hinzufügen:

android:layout_alignParentBottom="true"

Dieses Attribut bewirkt, dass der Knopf an dem unterem Bildschirmrand anliegt, so ist das Problem elegant gelöst.

Java


In unserem Javacode müssen wir nur sehr wenig umändern. Wie schon bei unserem Knopf müssen wir das Texteingabefeld lediglich in einer Zeile initialisieren:

eingabe = (EditText)findViewById(R.id.eingabe);

Die Variable "eingabe" definieren wir wie den Knopf, nur dass sie diesmal den Datentyp "EditText" besitzt.

 

Nach der Initialisierung können wir den Text, welcher in dem Eingabefeld steht, jederzeit per "eingabe.getText()" abfragen. Versucht doch mal, in Kombination mit eurem erlernten Wissen aus dem zweitem Teil, den eingetragenen Text in einem Toast anzuzeigen, nachdem unser Knopf gedrückt worden ist. Die Lösung findet ihr natürlich wieder ganz unten¹.

Tastaturen


Durch Veränderung des Attributes "android:inputType", mit einem der folgenden Werte, wird eine andere Tastatur angezeigt.

text : Normale Standardtastatur
textEmailAddress : Normale Standardtastatur mit dem @ Zeichen
textUri : Normale Standardtastatur mit dem / Zeichen
number : Nummertastatur
phone : Wähltastatur

Ich hoffe ihr habt Spaß beim Lesen und Nachprogrammieren des 3. Teils des Android Tutorials. Im nächsten Teil setzen wir direkt hier wieder an und setzen den Code fort.
 

Lösungen


¹

package city.univer.blindjerobine.meineapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    Button btn;
    EditText eingabe;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        eingabe = (EditText)findViewById(R.id.eingabe);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, eingabe.getText(), Toast.LENGTH_LONG).show();
            }
        });
    }
}
Sort:  

Hallo @blindjerobine, herzlich willkommen auf Steemit.

Wenn Du Fragen zu Steemit hast, oder Dich mit anderen deutschen „Steemians“ austauschen magst, schau einfach mal auf unserem Discord-Server https://discord.gg/g6ktN45 vorbei.

Unter dem folgenden Link findest Du einige Anleitungen, die Dir den Einstieg in das Steem-Universum deutlich erleichtern werden: Deutschsprachige Tutorials für Steemit-Neulinge: Ein Überblick

Congratulations @blindjerobine! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63740.26
ETH 2618.46
USDT 1.00
SBD 2.79