2

文字列比較が機能しません。何故かはわからない。2 つの文字列が同じでない場合でも常に等しいことを返します

これが私が使用しているコードです

if(videoFile.equals(LangSelect.INSTRUCTION_01));
    {
        Log.i("InstructionVideo", "video and instruction are equal\n"+ videoFile + "\n" + LangSelect.INSTRUCTION_01);

        //hideBackButton();
    }

videoFile は intro_x.mp4 で、x は 0 から 4 の数字に変化し、INSTRUCTION_01 は into_0.mp4 です。

videoFile 変数を設定する onCreate の部分

    //get which video file to play
    videoFile = getIntent().getExtras().getString("PlayVideo");

    Log.i("InstructionVideo", "videoFile name: " +videoFile);

これがその部分のLogCatです

 05-15 14:59:57.078: I/InstructionVideo(2952): videoFile name: intro_0.mp4
 05-15 14:59:57.085: I/InstructionVideo(2952): video and instruction are equal
 05-15 14:59:57.085: I/InstructionVideo(2952): intro_0.mp4
 05-15 14:59:57.085: I/InstructionVideo(2952): intro_0.mp4
 05-15 14:59:57.124: I/surfaceCreated(2952): created
 05-15 14:59:58.324: I/LangSelect(2952): 7
 05-15 14:59:58.390: I/InstructionVideo(2952): videoFile name: intro_1.mp4
 05-15 14:59:58.390: I/InstructionVideo(2952): video and instruction are equal 
 05-15 14:59:58.390: I/InstructionVideo(2952): intro_1.mp4
 05-15 14:59:58.390: I/InstructionVideo(2952): intro_0.mp4
 05-15 14:59:58.433: I/surfaceCreated(2952): created
 05-15 14:59:58.484: I/SurfaceDestroyed(2952): destroyed
 05-15 15:00:07.382: I/LangSelect(2952): 7
 05-15 15:00:07.445: I/InstructionVideo(2952): videoFile name: intro_2.mp4
 05-15 15:00:07.449: I/InstructionVideo(2952): video and instruction are equal
 05-15 15:00:07.449: I/InstructionVideo(2952): intro_2.mp4
 05-15 15:00:07.449: I/InstructionVideo(2952): intro_0.mp4
 05-15 15:00:07.488: I/surfaceCreated(2952): created
 05-15 15:00:07.539: I/SurfaceDestroyed(2952): destroyed
 05-15 15:00:23.535: I/LangSelect(2952): 7
 05-15 15:00:23.597: I/InstructionVideo(2952): videoFile name: intro_3.mp4
 05-15 15:00:23.597: I/InstructionVideo(2952): video and instruction are equal
 05-15 15:00:23.597: I/InstructionVideo(2952): intro_3.mp4
 05-15 15:00:23.597: I/InstructionVideo(2952): intro_0.mp4
 05-15 15:00:23.632: I/surfaceCreated(2952): created
 05-15 15:00:23.687: I/SurfaceDestroyed(2952): destroyed
 05-15 15:00:38.843: I/LangSelect(2952): 7
 05-15 15:00:38.902: I/InstructionVideo(2952): videoFile name: intro_4.mp4
 05-15 15:00:38.906: I/InstructionVideo(2952): video and instruction are equal
 05-15 15:00:38.906: I/InstructionVideo(2952): intro_4.mp4
 05-15 15:00:38.906: I/InstructionVideo(2952): intro_0.mp4
 05-15 15:00:38.941: I/surfaceCreated(2952): created
 05-15 15:00:38.992: I/SurfaceDestroyed(2952): destroyed
 05-15 15:01:13.242: I/LangSelect(2952): 7
 05-15 15:01:13.296: I/SurfaceDestroyed(2952): destroyed

それらを比較しても、それらはtrueを返しますが、そうではないことを示しています

4

1 に答える 1

9

「if」行の;最後に「if」ステートメントを終了する があるため、次のブロックが常に実行されます。

于 2012-05-15T19:15:08.057 に答える