2017-01-24 3 views
1

Acr.UserDialogs NuGet-Package를 설치했으며 프롬프트를 열고 결과를 기다리고 있습니다. 여러 가지 방법을 시도했지만 얻을 수 없습니다. 그것은 작동합니다.
내 첫 번째 시도는이처럼 보였다 적어도 때로는 일 :Xamarin.Forms에서 PromptAsync의 결과를 기다리는 방법

bool validInput = false; 
PromptResult pResult; 

PromptConfig pConfig = new PromptConfig 
{ 
    Message = "Some message", 
    MaxLength = 10, 
    Placeholder = "Number...", 

    OnTextChanged = args => 
    { 
     if (args.Value.Length < 1) 
      args.IsValid = false; 

     foreach (char c in args.Value) 
     { 
      if (!char.IsNumber(c)) 
      { 
       args.IsValid = false; 
       break; 
      } 
     } 
    } 
}; 

pResult = await UserDialogs.Instance.PromptAsync(pConfig); 

if(pResult.Ok) 
{ 
    validInput = true; 
} 

if (validInput) 
{ 
    Navigation.PushAsync(new MenuPage())); 
} 

을하지만 가끔은 프롬프트가 표시되지 않고 pResult.Ok 어쨌든 사실입니다. 결과가 나올 때까지 기다려야한다는 것은 분명하지만 ... 어떻게?

+0

저는 xamarin 폼에 익숙하지 않지만 'Completed'와 같은'PromptConfig' 이벤트가있을 수 있습니다. 어쩌면 결과를 확인할 수 있습니다. –

+0

PromptConfig에 OnAction 이벤트가 있습니다. 그것을 사용하려면'pResult = UserDialogs.Instance.PromptAsync (pConfig)'를'UserDialogs.Instance.Prompt (pConfig)'로 변경해야했습니다 ... OnAction 이벤트는 이제 다음과 같이 보입니다 :'OnAction = args => { if (args.Ok) Navigation.PushAsync (새 MenuPage()); }'. 그러나 프롬프트는 가끔 나타나기도하고 나타나지 않는 경우도 있습니다. "OnAction"의 Ock는 사실입니다 ... 나는 이해하지 못합니다. 어쩌면 내가 git에 개발자에게 물어 봐야 – yiev

+0

그건 그렇고, PromptConfig 또한 Acr.UserDialogs의 클래스입니다 – yiev

답변

0

누군가가 똑같은 문제에 부딪히면 .. "기다리고있는"것이 무엇을 해야하는지하지 않은 이유는 안드로이드 에뮬레이터라고 생각합니다.

왜 안드로이드 6.0 (에뮬레이터는 안드로이드 6.0이 설치되어 있습니다) 실제 안 드 로이드 스마트 폰에 위의 코드는 절대적으로 작동합니다. 그리고 안드로이드 7.0을 가진 또 다른 진짜 안드로이드 스마트 폰에서 모든 것은 작동했습니다 ...

관련 문제