2013-05-14 8 views
0

I 경고 대화 상자에서 빈 편집 텍스트를 확인하기위한 다음과 같은 코드를 가지고 있지만,체크 빈 텍스트를 편집

if (mPhoneNumber == null) { 
     mPhoneNumber = GetNumber(); 
     if (mPhoneNumber == "Error") { 

      final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
      alert.setTitle("Warrning"); 
      alert.setMessage("Please Set Your Phone number"); 
      final EditText input = new EditText(this); 
      input.setInputType(InputType.TYPE_CLASS_PHONE); 
      alert.setView(input); 
      alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog,int whichButton) { 
          String value = input.getText().toString(); 
          while (value.isEmpty()) 
          { 
           alert.setTitle("Warrning"); 
           alert.setMessage("Please Set Your Phone number"); 
           alert.setView(input); 
           alert.setPositiveButton("Ok",new DialogInterface.OnClickListener() { 
              public void onClick(DialogInterface dialog,int whichButton) { 
               String value = input.getText().toString();}}); 
          } 
          String Result = SetNumber(value); 
          mPhoneNumber = value; 
          int UserServiceId = CallLogin(mPhoneNumber); 
          if (UserServiceId > 0) { 
           Intent Service = new Intent(MainScreeen.this, 
             RecipeService.class); 
           Service.putExtra("UserId", UserServiceId); 
           startService(Service); 
          } else { 
           Intent Reg = new Intent(MainScreeen.this,Regsteration.class); 
           Reg.putExtra("PhoneNumber", mPhoneNumber); 
           startActivity(Reg); 
          } 
         } 
        }); 
      alert.show(); 

내가 간을 사용자에게 적용 할 필요가 작동하지 않는 그/그녀의 전화 번호와 편집 텍스트가 비어 있지 않은 상태에서 while 루프를 사용했지만 작동하지 않습니다.

+0

"작동하지 않습니다"를 정의하십시오. 무슨 일이야? 당신은 무엇을 기대 했습니까? – Keppil

+2

'if (mPhoneNumber == "Error")'. Google에서 "Java에서 문자열 비교"로 작성하십시오. – Maroun

+0

다음에 StackOverflow 질문 [링크]보다 동일한 이유 [1] [1] : http://stackoverflow.com/questions/27952446/checking-if-edittext-isempty-not-working/27952746 # 27952746 –

답변

2

String 값을 비교하려는 것 같습니다. 당신은 그들이 아니라 같은 값을 가지고있는 경우 Strings에 대한 동일한 개체 경우

if("Error".equals(mPhoneNumber)) 

== 비교하는 것이이

if (mPhoneNumber == "Error") 

변화처럼 할 수 없습니다. "오류"mPhoneNumbernull

+0

모든 코드는 while 루프 부분을 제외하고는 제대로 작동하지만 프로그램이 무한 루프로 진행되는 것처럼 보입니다 ... 사용자가 "ok"값을 입력하지 않은 상태에서 경고 대화 상자를 표시하고 싶습니다 – user2379095

+0

그러면 왜 루프가 필요한가요? 사용자가'Button'을 누를 때마다'Dialog'를 보여주고'EditText'는 비어 있습니다. 그들은 대화를 통해 무언가를 어떻게 입력 할 것인가? 그것을 닫고 그들이 무엇이든 들어갈 수있게하십시오. 또한, 당신은 여전히 ​​내 대답을 – codeMagic

+0

비교로 변경해야합니다 그들은 대화 상자에 다음 그냥 단추를 실행하는 코드를'그것은'그것은 비어 있지 않은 경우'else' 아무것도하지 – codeMagic

0

대신 while 루프를 사용하지 동일 mPhoneNumber 경우, 당신은 왜 별도의 방법과 전화를 구축하여 AlertDialog을하지 않기 때문에 이런 식으로 이렇게하면 당신은 null 검사를 필요가 없습니다 그런 다음 버튼의 onClick 버튼에 if else를 사용하여 해당 값이 비어 있는지 확인하고 AlertDialog 메소드에서 재귀 호출을 수행하는지 확인합니다.

관련 문제