나는 사용자가 이름과 생년월일을 입력했는지 확인하고 생일이 오늘인지 그리고 생일을 맞출지를 프로그램이 확인할 수 있도록 몇 가지 코드를 작성 중입니다. 그러나 올바른 날짜를 사용하고 노래를 재생하도록 프로그램을 관리하는 동안 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
로깅/logcat/adb에 대해 배우고이 문제를 디버깅 할 수 있도록 장려 할 것입니다. – jarmod