[Android Studio] Je souhaite définir des restrictions sur les valeurs enregistrées dans EditText [Java]

introduction

Trois images sont une application qui fait une note de la pression artérielle que j'ai faite. La valeur saisie dans EditText est enregistrée dans la base de données. À ce moment-là, je voulais éviter les valeurs hors limites et les valeurs nulles, j'ai donc étudié diverses choses et les ai écrites avec des instructions if et des opérateurs logiques. À propos, avec ce code, l'application plantera si vous essayez d'enregistrer des données en continu. Cliquez ici pour un article sur l'échec d'enregistrement continu (passez à un autre article que j'ai écrit).

Exemple de code

MainActivity.java DatePicker, TimePicker et le code de police personnalisé sont omis. Blogs mentionnés lors de l'introduction de DatePicker et TimePicker. Cliquez ici pour un article sur les polices personnalisées (passez à un autre article que j'ai écrit). Écrivez l'instruction if dans la méthode onClick. (Bien que j'aie mis le code dedans, la méthode insertData est un code instable, veuillez donc ne pas l'utiliser tel quel)

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 = "veuillez remplir la valeur";
                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 = "Cette valeur ne peut pas être saisie";
                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;
                }
                //Méthode pour enregistrer la valeur dans la base de données
                insertData(db, maxBP, minBP, pulse);
                //Si vous réussissez votre inscription, vous recevrez un toast
                Toast toast = Toast.makeText(BloodPressureAdditionActivity.this, "S'est inscrit", 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();
    }
}

L'explication de la méthode insertDate, La valeur de l'argument est transmise aux colonnes _maxBP, _minBP, _pulse et enregistrée dans la table (ici _BPtable) avec la méthode d'insertion. Je pense que ce site est facile à comprendre pour l'explication de la classe ContentValues. Ajouter la clé et la valeur de programmation Let's insert et close sont des méthodes SQLiteDatabase. Développeur: classe SQLiteDatabase setError Si vous utilisez setError, le style de la marque de surprise rouge et du texte blanc sur fond noir comme l'image est automatiquement généré. J'ai écrit deux déclarations if, Le premier est nul La seconde est une entrée hors plage Cela correspond à chacun. Je suis heureux que vous puissiez l'utiliser comme référence.

Recommended Posts

[Android Studio] Je souhaite définir des restrictions sur les valeurs enregistrées dans EditText [Java]
[Android Studio] Je souhaite utiliser une bibliothèque Maven sur Android
Je souhaite simplifier la sortie du journal sur Android
Je suis tombé sur la version Java dans Android Studio, je vais donc le résumer
Reportez-vous à C ++ dans le module Android Studio (Java / kotlin)
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
[Java] Je veux effectuer distinctement avec la clé dans l'objet
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
De Java à C et de C à Java dans Android Studio
Je souhaite obtenir l'adresse IP lors de la connexion au Wi-Fi avec Java
Je souhaite envoyer un e-mail en Java.
3 façons d'importer des bibliothèques dans Android Studio
rsync4j --Je veux toucher rsync en Java.
Je veux obtenir la valeur en Ruby
Je veux faire quelque chose comme "cls" en Java
[Java] Je souhaite calculer la différence par rapport à la date
Je veux intégrer n'importe quel TraceId dans le journal
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
[Android Studio] [Java] Comment réparer l'écran verticalement
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Je veux placer RadioButtons dans le même RadioGroup à n'importe quelle position de l'écran
# 1_JAVA Je veux obtenir le numéro d'index en spécifiant un caractère dans la chaîne de caractères
Je veux accéder à l'API avec Rails sur plusieurs docker-composes configurés localement
[Android, Java] Méthode pratique pour calculer la différence en jours
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Je veux mettre le JDK sur mon PC Mac
Comment changer Java à l'ère d'OpenJDK sur Mac
Je souhaite passer au même écran dans l'état enregistré
Je souhaite renvoyer plusieurs valeurs de retour pour l'argument saisi
En Java, je souhaite couper plusieurs caractères spécifiés uniquement du début et de la fin.
Je souhaite utiliser l'applet Java facilement sur la ligne de commande sans utiliser l'IDE
Utilisez JLine lorsque vous souhaitez gérer les frappes sur la console caractère par caractère en Java
Lorsque vous souhaitez implémenter des tests de bibliothèque Java avec Spock en multi-module avec Gradle dans Android Studio 3
J'ai fait un "Sunshine Ikezaki game" que j'ai vu sur Twitter en Java.
J'ai essayé de créer une application cartographique simple dans Android Studio
Je veux juste écrire Java en utilisant Eclipse sur mon Mac
Je veux revenir à l'écran précédent avec kotlin et java!
[Java] Je veux vérifier que les éléments de la liste sont nuls ou vides [Collection Utils]
[Wire Mock] Je souhaite configurer un serveur stub / simulé en Java et effectuer des tests E2E.
[Android Studio] Définir une image arbitraire pour l'arrière-plan de l'application [Java]
Source pour afficher le tableau de caractères avec numberPicker dans Android Studio (Java)
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Je veux ajouter l'option désactivée à f.radio_button en fonction de la condition
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
Je veux changer la valeur de l'attribut dans Selenium of Ruby
La première chose à faire lorsque vous voulez être satisfait d'Heroku sur GitHub avec Eclipse sur Java
J'ai examiné le fichier créé lors de la sélection de l'activité vide dans Android Studio
Je veux écrire une JSP dans Emacs plus facilement que la valeur par défaut.
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
(Limité à Java 7 ou version ultérieure) Je souhaite que vous compariez des objets dans Objects.equals
Qu'est-ce qui n'était pas une utilisation équitable du détournement d'API Java sur Android?
J'ai appelé l'analyse de la syntaxe de l'API COTOHA 100 fois en Java pour mesurer les performances.
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données