안녕하세요 AlertDialog/Toast에 대한 질문이 있습니다. 사용자가 버튼을 클릭하면 "You are right"라는 메시지가 1 초 동안 표시됩니다. 토스트/alertdialog를 사용하여 이것을 구현할 때 실행하지만, dailog가 꺼지기 전에 onclick 메서드에서 다음 명령을 시작합니다. 이 문제를 어떻게 해결할 수 있습니까?대화 메시지가 닫힐 때까지 다른 명령을 일시 중지하는 방법
답변
토스트를 사용하는 경우 토스트가 표시되는 동안 작업을 연기하려면 Handler을 사용하십시오.
대화 상자를 사용할 때 "Okey"버튼에 onClickListener을 구현하십시오.
을 클릭 할 때 응답하지 않습니다. 사용자가 클릭 할 때까지 일시 중지되기 때문에 대화 상자에는 아무런 문제가 없습니다. 그러나 메시지를 표시하기 위해 토스트를 기다리면 기다리지 않습니다. 그리고 아무 것도 바람직하지 않은 다음 명령을 계속 실행합니다. 스레드를 사용하여 일시 중지하면 대화 상자가 응답하지 않게됩니다. 처리기를 사용하면 어떻게 다른지, 코드 스 니펫으로 설명 할 수 있습니까? – Nikhil
해당 수신기에서 AlertDialog 뒤에 오는 코드를 입력해야합니다. 예를 들어, 경고 대화 상자 다음에 응답을 기반으로 실행하려는 코드가 여러 개있는 경우 해당 코드를 다른 메소드로 이동하십시오. 그런 다음 positiveButton 수신기 (또는 음수 단추 수신기)에서 방금 만든 해당 메서드에 호출을 추가합니다. 또는 청취자에게 모두 그것을 밀어 넣을 수는 있지만 코드를 관리하기 어렵게 만듭니다. 여기
아니요 respnse .. 아무런 소리도 듣지 않는 다른 문장이 실행되기 전에 대화가 나타나야하고 이동해야합니다 – Nikhil
내가 핸들러 객체를 사용하여 그것을 어떻게입니다 ---
공용 클래스 ToastActivity는 활동 {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Handler mHandler = new Handler();
for(int i=10;i>=1;i--)
{
Toast.makeText(this, ""+i, Toast.LENGTH_SHORT).show();
}
mHandler.postDelayed(new Runnable(){public void run(){
LinearLayout t=(LinearLayout)findViewById(R.id.l); //This task is delayed by 21 sec.
t.setBackgroundColor(Color.CYAN);
}
}, 21000);
}
} 토스트가 사라진 후 토스트 후
문이 실행될를 확장합니다.
길이가 짧음의 축배가 2 초 동안 표시되기 때문에 최소 대기 시간은 약 20000ms, 그래서 21000ms를 기다리는 것은 하드 코드 된 방법이지만 올바른 일입니다. –
- 1. 다른 양식이 닫힐 때까지 Visual C#에서 양식을 일시 중지하는 방법
- 2. 알림을받을 때까지 NSThread를 일시 중지하는 방법은 무엇입니까?
- 3. C에서 일시 중지하는 방법?
- 4. 버튼을 누를 때까지 프로그램 실행을 일시 중지하는 방법?
- 5. C# 스레딩 : 하위 스레드가 닫힐 때까지 주 스레드를 일시 중지합니다.
- 6. iPhone에서 알람을 일시 중지하는 방법
- 7. 애니메이션이 완료 될 때까지 실행 코드를 일시 중지하는 방법은 무엇입니까?
- 8. JDialog가 열려있는 동안 실행을 일시 중지하는 방법
- 9. 모달 대화 상자가 닫힐 때 Delphi CMExit 메시지가 전송되지 않습니까?
- 10. 외부 이벤트가 발생할 때까지 PowerShell 스크립트를 일시 중지하는 방법은 무엇입니까?
- 11. 조건이 충족 될 때까지 jQuery를 일시 중지하는 방법은 무엇입니까?
- 12. 뭔가 끝날 때까지 자바 스크립트를 일시 중지하는 방법은 무엇입니까?
- 13. 예약 된 선택기를 일시 중지하는 방법?
- 14. 진행률 대화 상자가 android에서 닫힐 때 다른 활동으로 리디렉션하는 방법
- 15. in Twisted, 연결이 깨끗하게 닫힐 때까지 기다리십시오.
- 16. ASIHTTP를 사용하여 비디오를 일시 중지하는 방법
- 17. gdalinfo - 출력 데이터를 일시 중지하는 방법
- 18. 아이폰의지도보기의 현재 상태를 일시 중지하는 방법
- 19. 버튼에서 mediaelementjs 플레이어를 일시 중지하는 방법?
- 20. Java 스윙에서 버튼을 클릭 할 때까지 프로그램 실행을 일시 중지하는 방법
- 21. 데이터를 가져올 때까지 UITableView로드를 중지하는 방법?
- 22. jQuery 확인 대화 상자 - 승인 될 때까지 일시 중지
- 23. TCP 메시지가 ACK 될 때까지 기다리는 방법
- 24. 다른 클래스에서 실행중인 스레드를 잠 그거나 일시 중지하는 방법은 무엇입니까?
- 25. 설정 프로젝트가 .NET에서 닫힐 때까지 기다리십시오.
- 26. iPhone : 모달 윈도우가 닫힐 때까지 실행 중지 (메서드 열기 중)?
- 27. 내 winform 응용 프로그램이 닫힐 때 스레드를 중지하는 방법
- 28. 소켓이 닫힐 때까지 Python socket.send()가 전송되지 않습니다.
- 29. 브라우저가 닫힐 때까지 세션이 유효하지 않게하고 싶습니다.
- 30. Python Unittest : 프로그램이 닫힐 때까지 열어서 대기하십시오.
나는 이것이 나 자신을 알아 차렸기 때문에 두려운 질문이다. 안드로이드는 응답을 "기다릴"것이라고 생각 하겠지만 응답을 기다리고 있음에도 불구하고 프로그램은 계속 실행됩니다. – Jack
잠시 동안 대화 상자가 닫히는 동안 스레드가 잠자기 상태가됩니다. –
UI 스레드를 잠자기로하면 사용자가 – Jack