0

「失敗した」文字列リテラルをこの関数に渡された文字列と比較したいのですが、「結果」に渡された文字列が失敗した文字列と同じではないという問題があり、明示的に「失敗しました」を機能に追加します。

       if(result.equals(fail))

私にとっては常にfalseを返します

protected void onPostExecute(String result) {
 super.onPostExecute(result);   
 TextView data_details = (TextView)findViewById(R.id.results_tab);
 data_details.setText(result); // THIS PRINTS OUT THE VALUE TO SCREEN WHICH IS 'failed'
 String fail = "failed";

 if(result.equals(fail))
 {

    Intent redirect = new Intent(LogActivity.this, MainActivity.class);
    redirect.putExtra("error", result);
    startActivity(redirect);
    finish();
  }     
 }

また、私は試しました:

if(result.equalsIgnoreCase("failed"))
4

2 に答える 2

3

文字列変数に空白が含まれている可能性があります。次のように条件を確認することをお勧めします。

if(result.trim().equalsIgnoreCase(fail.trim()))
{
    // your code
}
于 2012-09-20T06:10:20.803 に答える
0

試してみてください。スペースが含まれているfail.equals(result.trim()) 可能性があるため、問題が発生している可能性があります。result

ここで比較にfailが使用される理由は、あなたの場合、 null になることはありません。結果がnullの場合、NullPointerExceptionが発生します

于 2012-09-20T06:10:06.720 に答える