[Android Studio] Ich möchte Einschränkungen für die in EditText [Java] registrierten Werte festlegen.

Einführung

Drei Bilder sind eine Anwendung, die den von mir gemachten Blutdruck notiert. Der in EditText eingegebene Wert wird in der Datenbank gespeichert. Zu dieser Zeit wollte ich Werte und Nullen außerhalb des Bereichs vermeiden, also untersuchte ich verschiedene Dinge und schrieb sie mit if-Anweisungen und logischen Operatoren. Mit diesem Code stürzt die App übrigens ab, wenn Sie versuchen, Daten kontinuierlich zu registrieren. Klicken Sie hier, um einen Artikel über einen fortlaufenden Registrierungsfehler zu lesen (springen Sie zu einem anderen Artikel, den ich geschrieben habe).

Beispielcode

MainActivity.java DatePicker, TimePicker und benutzerdefinierter Schriftcode werden weggelassen. Blogs, auf die bei der Einführung von DatePicker und TimePicker verwiesen wird. Klicken Sie hier, um einen Artikel über benutzerdefinierte Schriftarten zu lesen (springen Sie zu einem anderen Artikel, den ich geschrieben habe). Schreiben Sie die if-Anweisung in die onClick-Methode. (Obwohl ich den Code eingefügt habe, ist die insertData-Methode instabiler Code. Bitte verwenden Sie ihn nicht so, wie er ist.)

MainActivity.java


public class MainActivity extends AppCompatActivity {
    EditText getMaxBP;
    EditText getMinBP;
    EditText getPulse;
    Button btEntry;
    Button btNext;
    DatabaseHelper helper;
    SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        helper = new DatabaseHelper(MainActivity.this);
        db = helper.getWritableDatabase();

        btEntry = findViewById(R.id.btEntry);
        btEntry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getMaxBP = findViewById(R.id.etUpperBloodPressure);
                String maxBP = (getMaxBP.getText().toString());
                getMinBP = findViewById(R.id.etLowerBloodPressure);
                String minBP = (getMinBP.getText().toString());
                getPulse = findViewById(R.id.etPulse);
                String pulse = (getPulse.getText().toString());

                String nullMsg = "Bitte geben Sie den Wert ein";
                if(maxBP.length()==0){
                    getMaxBP.setError(nullMsg);
                    return;
                } else if(minBP.length()==0){
                    getMinBP.setError(nullMsg);
                    return;
                } else if(pulse.length()==0){
                    getPulse.setError(nullMsg);
                    return;
                }
                String errorMsg = "Dieser Wert kann nicht eingegeben werden";
                if(!(80 <= Integer.parseInt(maxBP) && Integer.parseInt(maxBP) <= 180)){
                    getMaxBP.setError(errorMsg);
                    return;
                } else if(!(50 <= Integer.parseInt(minBP) && Integer.parseInt(minBP) <= 140)){
                    getMinBP.setError(errorMsg);
                    return;
                } else if(!(40 <= Integer.parseInt(pulse) && Integer.parseInt(pulse) <= 120)){
                    getPulse.setError(errorMsg);
                    return;
                }
                //Methode zum Registrieren von Werten in der Datenbank
                insertData(db, maxBP, minBP, pulse);
                //Wenn Sie sich erfolgreich registrieren, erhalten Sie einen Toast
                Toast toast = Toast.makeText(BloodPressureAdditionActivity.this, "Hat sich registriert", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });
        btNext = findViewById(R.id.btNext);
        btNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, SubActivity.class);
                startActivity(intent);
            }
        });
    }
public void insertData(SQLiteDatabase db, String maxBP, String minBP, String pulse){
        ContentValues values = new ContentValues();
        try {
            values.put("_maxBP", maxBP);
            values.put("_minBP", minBP);
            values.put("_pulse", pulse);
            db.insert("_BPtable", null, values);
        } finally {
            db.close();
    }
}

Die Erklärung der insertDate-Methode, Der Wert des Arguments wird an die Spalten _maxBP, _minBP, _pulse übergeben und mit der Einfügemethode in der Tabelle (hier _BPtable) registriert. Ich denke, diese Seite ist für die Erklärung der ContentValues-Klasse leicht zu verstehen. Add Let's Programmierschlüssel und -wert Einfügen und Schließen sind SQLiteDatabase-Methoden. Entwickler: SQLiteDatabase-Klasse setError Wenn Sie setError verwenden, wird der Stil der roten Überraschungsmarke und des weißen Textes mit schwarzem Hintergrund wie das Bild automatisch ausgegeben. Ich schrieb zwei if-Aussagen, Der erste ist null Der zweite ist ein Eingang außerhalb des Bereichs Es entspricht jedem. Ich bin froh, wenn Sie es als Referenz verwenden können.

Recommended Posts

[Android Studio] Ich möchte Einschränkungen für die in EditText [Java] registrierten Werte festlegen.
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
Ich möchte die Protokollausgabe unter Android vereinfachen
Ich bin auf die Java-Version in Android Studio gestoßen, daher werde ich sie zusammenfassen
Siehe C ++ im Android Studio-Modul (Java / Kotlin)
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Von Java nach C und von C nach Java in Android Studio
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich möchte eine E-Mail in Java senden.
3 Möglichkeiten zum Importieren von Bibliotheken in Android Studio
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte den Wert in Ruby erhalten
Ich möchte so etwas wie "cls" in Java machen
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
[Android Studio] [Java] So fixieren Sie den Bildschirm vertikal
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich möchte RadioButtons an derselben Stelle auf dem Bildschirm in derselben RadioGroup platzieren
# 1_JAVA Ich möchte die Indexnummer durch Angabe eines Zeichens in der Zeichenfolge erhalten
Ich möchte die API mit Rails auf mehreren lokal eingerichteten Docker-Composes treffen
[Android, Java] Praktische Methode zur Berechnung der Differenz in Tagen
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich möchte das JDK auf meinem Mac-PC installieren
So wechseln Sie Java in der OpenJDK-Ära auf dem Mac
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte mehrere Rückgabewerte für das eingegebene Argument zurückgeben
In Java möchte ich mehrere angegebene Zeichen nur von Anfang bis Ende abschneiden.
Ich möchte Java Applet einfach in der Befehlszeile verwenden, ohne IDE zu verwenden
Verwenden Sie JLine, wenn Sie Tastenanschläge auf der Konsole zeichenweise in Java verarbeiten möchten
Wenn Sie Java-Bibliothekstests mit Spock in mehreren Modulen mit Gradle in Android Studio 3 implementieren möchten
Ich habe ein "Sunshine Ikezaki-Spiel" gemacht, das ich auf Twitter in Java gesehen habe.
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ich möchte nur Java mit Eclipse auf meinem Mac schreiben
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
[Java] Ich möchte überprüfen, ob die Elemente in der Liste null oder leer sind. [Collection Utils]
[Wire Mock] Ich möchte einen Stub / Mock-Server in Java einrichten und E2E-Tests durchführen.
[Android Studio] Legen Sie ein beliebiges Bild für den Anwendungshintergrund fest. [Java]
Quelle zur Anzeige des Zeichenarrays mit numberPicker in Android Studio (Java)
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Ich möchte die deaktivierte Option abhängig von der Bedingung zu f.radio_button hinzufügen
Ich möchte den oberen Rand in der UITableView von Grouped entfernen (schnell)
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich möchte den Wert von Attribute in Selenium of Ruby ändern
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten
Ich habe die Datei untersucht, die bei der Auswahl von Leere Aktivität in Android Studio erstellt wurde
Ich möchte JSP in Emacs einfacher als die Standardeinstellung schreiben.
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (PowerMockito Edition)
(Beschränkt auf Java 7 oder höher) Ich möchte, dass Sie Objekte in Objects.equals vergleichen
Was war keine faire Verwendung der Java-API-Umleitung unter Android?
Ich habe die COTOHA-API-Syntaxanalyse 100 Mal in Java aufgerufen, um die Leistung zu messen.
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen