Je reçois parfois des valeurs étranges, peu importe ce que je saisis. Bug - pousser les données SharedPreference à backend par l'objet JSON
Note: "null" est en fait une chaîne que je l'ai défini par défaut
code où je sauve dans SharedPreference
billText = (EditText) findViewById(R.id.billNumber);
tableNumberText = (EditText) findViewById(R.id.tableNumber);
amountText = (EditText) findViewById(R.id.amount);
remarksText = (EditText) findViewById(R.id.remarks);
submit = (Button) findViewById(R.id.submitButton);
SharedPreferences sharedPreferences = getSharedPreferences(SharedPreference.Form.FORM, MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (tableNumberText.getText().toString() != null || tableNumberText.getText().toString() != "") {
editor.putString(SharedPreference.Form.TABLE_NUMBER, tableNumberText.getText().toString());
Toast.makeText(FormActivity.this, "ABC", Toast.LENGTH_LONG).show();
}
if (amountText.getText().toString() != null || amountText.getText().toString() != "") {
editor.putString(SharedPreference.Form.AMOUNT, amountText.getText().toString());
}
if (billText.getText().toString() != null || billText.getText().toString() != "") {
editor.putString(SharedPreference.Form.BILL_NUMBER, billText.getText().toString());
}
if (remarksText.getText().toString() != null || remarksText.getText().toString() != "") {
editor.putString(SharedPreference.Form.REMARKS, remarksText.getText().toString());
}
editor.commit();
startActivity(new Intent(getApplicationContext(), FeedbackActivity.class));
}
});
code où je pousse les données
jsonObj.put("bill", sharedPreferences.getString(SharedPreference.Form.BILL_NUMBER, "null"));
jsonObj.put("table", sharedPreferences.getString(SharedPreference.Form.TABLE_NUMBER, "null"));
jsonObj.put("amount", sharedPreferences.getString(SharedPreference.Form.AMOUNT, "null"));
jsonObj.put("remarks", sharedPreferences.getString(SharedPreference.Form.REMARKS, "null"));
editor.clear();
editor.commit();
Editer:
Ce que j'ai l'intention de faire: Conserver les données via SharedPreference. Je sauvegarde d'abord les données via une activité (premier bloc de code), puis je pousse les données vers le backend. Il y a quatre champs de texte (EditText
) d'où j'obtiens des données String
.
Comportement attendu: Lorsque j'utilise la méthode
jsonObj.put("key", SharedPreference.getString(key, default-value)
je devrais obtenir la valeur que je l'avais enregistré dans l'activité mis en arrière-plan.
Résultat:
Au back-end, plutôt que d'obtenir ce que je rentre, je reçois ce qui est montré dans la capture d'écran.
partie étrange: Bien, comme vous pouvez le voir, le code est identique pour les quatre champs ont le même code (il y a quatre EditText
champs où l'utilisateur saisit les données) trois d'entre eux get-de chaîne par défaut, à savoir "null"
et un (montant) reste vide.
PS: Dans tous ces tests que je cours, je n'ai jamais laissé tous les champs vides.
au premier appel '' si au lieu de 'si (tableNumberText.getText(). toString()! = null || tableNumberText.getText(). toString()! = "") ' –
@IntelliJAmiya non, cela n'a pas résolu le bug. J'ai essayé. –
quel étrange ?? ... ajouter plus de détails à votre question ... tout d'abord il vous a toujours laissé mettre les espaces sur edittexts .. selon votre code actuel. –