質問: Text2.getText(); if("".equals(str2)){ Text2.setText(str1); Text1.setText(str1); } if("".equals(str1)){ Text1.setText(str2); Text2.setText(str2); } else{ Text2.setText(str1); Text1.setText(str2); } } } } ```
回答: 端的に回答すると、2つのif文の前にelse句が抜けているのが原因と思います。ですので、 次のようにすると期待通りに動作すると思います。 ``` if("".equals(str2)){ Text2.setText(str1); Text1.setText(str1); } else if("".equals(str1)){ Text1.setText(str2); Text2.setText(str2); } else{ Text2.setText(str1); Text1.setText(str2); } ``` **補足** 質問文にあった条件文では、1つ目のif文(`if("".equals(str2)){`)の結果に関わらず、2つ目のif文 (`if("".equals(str1)){`)が実行されます。 (1の状況の場合、条件式は`false`になるので、`else`節の処理が実行され、Text1とText2の内容が入れ替わっています) 1つ目のif文の条件式が`true`の場合、次のif文は処理したくないので、`else`句を加える必要があります。(こうすることで、1つ目のif文の条件式が`false`の場合のみ2つ目のif文が実行される)