0

Je reçois parfois des valeurs étranges, peu importe ce que je saisis. Backend screenshotBug - 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.

+0

au premier appel '' si au lieu de 'si (tableNumberText.getText(). toString()! = null || tableNumberText.getText(). toString()! = "") ' –

+0

@IntelliJAmiya non, cela n'a pas résolu le bug. J'ai essayé. –

+0

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

Répondre

0

La bonne façon de tester si un EditText est actuellement vide est: (. TextUtils.isEmpty (tableNumberText.getText() toString()))

if(TextUtils.isEmpty(amountText.getText())) {...} 
+0

Cela n'a pas résolu le bug. Le problème persiste. –

+0

Vous n'avez pas décrit le problème réel, en plus de dire que le résultat est "étrange". S'il vous plaît donner plus d'informations sur le comportement attendu et actuel. – BladeCoder

+0

Veuillez lire les détails supplémentaires (à partir de ** Modifier **). Merci pour l'aide. –