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).
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