2013-06-26 3 views
0

Android 앱에서 버튼을 클릭 할 때 ProgressBar를 보이게하고 일부 프로세스를 수행 한 다음 바를 다시 보이지 않게하려고합니다. 내 단추의 OnClick 방법의 일반적인 개요는 다음과 같습니다 :setVisibility (View.Visible)을 호출 할 때 ProgressBar가 표시되지 않습니다.

ProgressBar bar = (ProgressBar)findViewById(R.id.prog_bar); 
bar.setVisibility(View.VISIBLE); 

이 ... 몇 가지 물건을 ... 내가 코드를 실행할 때

그러나
bar.setVisibility(View.INVISIBLE); 

, 중간 과정 인 반면, 완료되면 ProgressBar가 나타나지 않습니다. 어떤 아이디어?

+1

http : // developer .android.com/reference/android/widget/ProgressBar.html. 이것을 확인하십시오 – Raghunandan

+1

@Raghunandan이 링크는 어떻습니까? ProgressBar는 기본적으로 표시되어야합니다. –

+0

Arun, 레이아웃에 제대로 설정되어 있습니까? 예 : 그것은 다른 관점, 또는 무언가에 의해 커버되지 않습니다? 레이아웃의 XML 파일을 보여 주면 좋을 것입니다. –

답변

2

메인 스레드에서 OnClick이 호출됩니다. ProgressBar에 대한 변경 사항은 OnClick 메서드가 반환 될 때까지 눈에 띄는 효과가 없습니다. 그때까지, 당신은 이미 모든 일을 끝내고 그것을 다시 숨겼습니다.

작업을 백그라운드 스레드로 옮깁니다. 이렇게하면 앱 응답 성이 향상 될뿐 아니라 프로 그래스 바가 표시됩니다. 작업이 끝나면 작업 스레드가 아닌 주 스레드에서 진행률 막대를 숨겨야합니다. 일반적으로이 작업을 수행하기 위해 메시지를 처리기에 게시합니다.)

+0

'onClick' 메서드의 전체 코드를 보여주기 전까지는 확신 할 수 없습니다. –

+0

아담, 고마워요. 정확히 무슨 일이 일어난 것 같아요. 불행하게도, 중간의 작업은 Main View의 객체를 참조하기 때문에 별도의 스레드에 넣을 수 없다고 말합니 까? –