错误 - 通过JSON对象将

时间:2017-02-13 19:11:17

标签: android json sharedpreferences android-sharedpreferences

无论我输入什么,我有时会得到奇怪的价值观。 Backend screenshot

注意:“null”实际上是我设置为默认值的字符串

我在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));
            }
        });

推送数据的代码

                    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();

修改

我打算做什么:通过SharedPreference持久保存数据。我首先通过Activity(第一个代码块)保存数据,然后将数据推送到后端。有四个文本字段(EditText),我从中获取String数据。

预期行为:当我使用方法

jsonObj.put("key", SharedPreference.getString(key, default-value)

我应该得到我在后端放置的Activity中保存的值。

结果

在后端,而不是得到我输入的内容,我得到屏幕截图中显示的内容。

奇怪的部分:但是,正如您所看到的,所有四个字段的代码都相同,但代码相同(用户输入的数据有四个EditText字段)三他们得到默认字符串,即"null"和一个(金额)保持空白。

PS :在我运行的所有这些测试中,我从未将所有字段留空。

1 个答案:

答案 0 :(得分:0)

测试EditText当前是否为空的正确方法是:

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