안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요. 특정 버튼을 누르면 아래와 같이 프로그레스바를 증가시키고 싶습니다;; 아래와 같이 했더니,
for문을 모두 돌고 나서야, 프로그레스바가 100으로 채워지네요.. 해결 방법 좀 조언 부탁 드립니다.
progressBar01 = (ProgressBar)findViewById(R.id.progressBar1);
Button ftn = (Button) findViewById(R.id.button5);
ftn.setOnClickListener(
new View.OnClickListener(){
public void onClick(View v){
progressBar01.setProgress( 0 );
progressBar01.setMax( 100 );
for(index=0; index<bufferSize; index+=frameSize){
frameSize = dummybuffer[cnt];
byte[] RealMessage = new byte[frameSize];
iBuf = 100 * bytesSent / bufferSize;
progressBar01.setProgress(iBuf);




프로그레스바의 프로그레스를 건드리는 코드는 핸들러로 별도로 빼고
프로그레스 값 넣는 것은 별도 스레드에서 ..
대충 적어보자면 이런 식으로....
private Handler progressHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
progressBar01.setProgress(msg.what);
}
};
private void btnClick(){
new Thread(){
@Override
public void run() {
for(int i=0 ; i<100 ; i++){
progressHandler.sendEmptyMessage(i);
sleep(500);
}
}
}.start();
}