>source

PeuralSight에서 Android Studio 튜토리얼을 따르고 있으며이 코드가 있습니다 :

@Override
    protected void onPostExecute(String result) {
        TextView tvResult = (TextView)findViewById(R.id.tvResponse);
        TextView tvError = (TextView)findViewById(R.id.tvError);
        tvResult.setText(result);
        mLoadingProgress.setVisibility(View.INVISIBLE);
        Log.d("Error", result);
        if(result == null) {
            tvResult.setVisibility(View.INVISIBLE);
            tvError.setVisibility(View.VISIBLE);
            Log.d("Error", "null");
        }
        else {
            tvResult.setVisibility(View.VISIBLE);
            tvError.setVisibility(View.INVISIBLE);
            Log.d("Error", "not null");
        }
    }

어떤 이유로 결과가 null 일 때 다른 결과가 나오면 디버깅 모드에서 보았고 로그는 다음과 같습니다.

D/Error: null
    not null

  • 답변 # 1

    if (result != null && !result.isEmpty())
    {
            tvResult.setVisibility(View.VISIBLE);
            tvError.setVisibility(View.INVISIBLE);
            Log.d("Error", "not null");
     }
     else{
            tvResult.setVisibility(View.INVISIBLE);
            tvError.setVisibility(View.VISIBLE);
            Log.d("Error", "null");
     }
    
    

  • 답변 # 2

    null을 문자열로 문자열 화하는 방법 하나를 생성

    public boolean isEmptyString(String inputStr) {
            if (inputStr != null && !inputStr.equals("") && inputStr.toString().trim().length() > 0) {
                return false;
            } else
                return true;
        }
    
    

    이 방법을 이렇게 사용하십시오

    if(isEmptyString(result))
    {
    ///Null
    else
    {
    /// Not null
    }
    
    

관련 자료

  • 이전 htaccess 변경 후 사이트 다운
  • 다음 c# - WCF protobuf 엔드 포인트 400 잘못된 요청