我正在研究一些代碼,它將允許程序檢查用戶是否輸入了姓名和出生日,並決定今天的生日是否是生日快樂。但是,儘管我已經設法讓程序使用正確的日期並播放歌曲,但if語句似乎沒有正常工作。當我輸入當前日期作爲生日時,即使名稱框爲空,生日快樂歌曲也會始終啓動,並且它應該詢問您的姓名。這隻發生在生日文本框和當天匹配時,所以任何人都可以幫助我獲得我的if語句正常工作。這是我的if語句代碼。如果聲明在android中不斷激活
if((btn==v) && (name.getText().toString()!="") && (bday.getText().toString()!="") && (bday.getText().toString().equals(formatdate))){
String msg1 = "Today is " + sdf.format(cdate.getTime()) + ". Happy Birthday, " + name.getText() + "!";
toast = Toast.makeText(this, msg1, Toast.LENGTH_SHORT);
toast.show();
//Context context = null;
mp.start();
//mp.stop();
response.setText(msg1);
}else if(btn==v && name.getText().toString().equals("") && bday.getText().toString()!=""){
String msg3 = "Please enter your name.";
toast = Toast.makeText(this, msg3, Toast.LENGTH_SHORT);
toast.show();
mp.stop();
response.setText(msg3);
}else if(btn==v && name.getText().toString()!="" && bday.getText().toString().equals("")){
String msg4 = "Please enter your birthday.";
toast = Toast.makeText(this, msg4, Toast.LENGTH_SHORT);
toast.show();
response.setText(msg4);
}else if(btn==v && name.getText().toString().equals("") && bday.getText().toString().equals("")){
String msg5 = "Please enter your name and birthday.";
toast = Toast.makeText(this, msg5, Toast.LENGTH_SHORT);
toast.show();
response.setText(msg5);
}else{
String msg2 = "Today is " + formatdate + ". Sorry today is not your birthday.";
toast = Toast.makeText(this, msg2, Toast.LENGTH_SHORT);
toast.show();
response.setText(msg2);
}
首先要做的就是停止使用'!=「」'比較字符串,再加上所有條件以'btn == v && name.getText()'開始 - 您應該在剩下的事情之前將其作爲一個語句來執行 - 您代碼將更容易遵循,然後您可能會更快地發現問題。 – John3136
我鼓勵您瞭解logging/logcat/adb,以便您可以更有效地調試此問題和未來的問題。 – jarmod