Android String.equals не работает, когда я пытаюсь сопоставить из httpresponse

#android

#Android

Вопрос:

 RestClient.post("auth/login/", loginparam, new AsyncHttpResponseHandler() {
    @Override
    public void onSuccess(String s) {
        Toast.makeText(getApplicationContext(),
            String.valueOf(s.toLowerCase().equals("ok")), 
            Toast.LENGTH_LONG).show();
        if (s.equals("ok")) {
            startActivity(new Intent(getApplication(), HomeActivity.class));
        }
    }
});
  

Это код, который я использовал для входа в приложение Android, в тексте тоста я вижу, что сервер вернул «ok», но в моем случае s.equals всегда терпел неудачу, кто-нибудь может это объяснить? Спасибо.

Ответ №1:

попробуйте игнорировать регистр, например:

 if( s.compareToIgnoreCase("ok") == 0) {
   startActivity...
  

Комментарии:

1. Я нашел причину, на самом деле сервер вернул «» «ok» «», можете ли вы предложить способ подтвердить, что пользователь вошел в систему? Мне не нравится, как я это делаю.

2. Забавно, я об этом не подумал! Извините, у меня нет идеи получше.