1. ホーム
  2. android

[解決済み] AndroidでNULLや空文字列をチェックする

2023-07-13 17:09:38

質問

私の試行錯誤の結果 AsyncTask サーバからメールアドレスを取得します。で onPostExecute() はメールアドレスかどうかを確認する必要があります。 empty または null . 以下のコードで確認しました。

if (userEmail != null && !userEmail.isEmpty()) {
    Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
    UserEmailLabel.setText(userEmail);
}

しかし、私の Toast では null が印刷されます。私の完全なコードです。

private class LoadPersonalData extends AsyncTask<String, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    protected Void doInBackground(String... res) {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("user_id", PrefUserName));
        params.add(new BasicNameValuePair("type", type_data));
        JSONObject json = jsonParser.makeHttpRequest(Url, "POST", params);
        String result = "";
        try {
            result = json.getString("message");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        if (result.equals("success")) {
            try {
                userEmail = json.getString("email");
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);            
        if (userEmail != null && !userEmail.isEmpty()) {
            Toast.makeText(getActivity(), userEmail, Toast.LENGTH_LONG).show();
            UserEmailLabel.setText(userEmail);
        }
    }

どのようにすれば nullempty の文字列ですか?

どのように解決するのですか?

Jon Skeetのコメントから、本当に String の値は "null" . 次のコードで解決しました。

if (userEmail != null && !userEmail.isEmpty() && !userEmail.equals("null"))