2013-10-15 4 views
1

진행률 표시 줄을 참조하여 백분율 (또는 이와 비슷한 값)을 표시 할 진행률 표시 줄에서 onclick 이벤트를 얻을 수 있습니까? 지점 A에서 2.3 %, 지점 X에서 46.7 %를 얻습니다. 희망이 질문은 분명하다.진행 표시 줄 onclick 이벤트

이 솔루션에 대한 다른 도움/접근 방법도 상당히 유용 할 것입니다.

답변

1

Progress bar Example

public class MyAndroidAppActivity extends Activity { 

Button btnStartProgress; 
ProgressDialog progressBar; 
private int progressBarStatus = 0; 
private Handler progressBarHandler = new Handler(); 

private long fileSize = 0; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    addListenerOnButton(); 

} 

public void addListenerOnButton() { 

    btnStartProgress = (Button) findViewById(R.id.btnStartProgress); 
    btnStartProgress.setOnClickListener(
      new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

     // prepare for a progress bar dialog 
     progressBar = new ProgressDialog(v.getContext()); 
     progressBar.setCancelable(true); 
     progressBar.setMessage("In Progress ..."); 
     progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     progressBar.setProgress(0); 
     progressBar.setMax(100); 
     progressBar.show(); 

     //reset progress bar status 
     progressBarStatus = 0; 

     //reset filesize 
     fileSize = 0; 

     new Thread(new Runnable() { 
      public void run() { 
      while (progressBarStatus < 100) { 

       // process some tasks 
       progressBarStatus = doSomeTasks(); 

       // your computer is too fast, sleep 1 second 
       try { 
       Thread.sleep(1000); 
       } catch (InterruptedException e) { 
       e.printStackTrace(); 
       } 

       // Update the progress bar 
       progressBarHandler.post(new Runnable() { 
       public void run() { 
        progressBar.setProgress(progressBarStatus); 
       } 
       }); 
      } 

      // ok, file is downloaded, 
      if (progressBarStatus >= 100) { 

       // sleep 2 seconds, so that you can see the 100% 
       try { 
        Thread.sleep(2000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 

       // close the progress bar dialog 
       progressBar.dismiss(); 
      } 
      } 
      }).start(); 

      } 

      }); 

    } 

// file download simulator... a really simple 
public int doSomeTasks() { 

    while (fileSize <= 1000000) { 

     fileSize++; 

     if (fileSize == 100000) { 
      return 10; 
     } else if (fileSize == 200000) { 
      return 20; 
     } else if (fileSize == 300000) { 
      return 30; 
     } 
     // ...add your own 

    } 

    return 100; 
    } 
} 
보기