2013-04-23 86 views
1

如何在点击活动中的按钮时带上进度条我在主要活动中有一个按钮,如果我单击按钮我想要显示进度条我不想使用辅助活动为此我已完成2活动,但我需要它在主要活动中完成。android中的进度条onclick按钮?

谢谢

我的代码:

首页活动:

public void load(View v){ 
    Intent intent = new Intent(this,Splash.class); 
    this.startActivity(intent); 
} 

飞溅活动:

public class Splash extends Activity { 
    private long ms = 0; 
    private long splashTime = 20000; 
    private boolean splashActive = true; 
    private boolean paused = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.splash); 

     Thread mythread = new Thread() { 
      public void run() { 
       try { 
        while (splashActive && ms < splashTime) { 
         if (!paused) 
          ms = ms + 100; 
         sleep(100); 
        } 
       } catch (Exception e) { 
       } finally { 
        Intent intent = new Intent(Splash.this, Home.class); 
        startActivity(intent); 
       } 
      } 
     }; 
     mythread.start(); 
    } 
} 

回答

5

你可以这样做

ProgressDialog progress; 

progress = new ProgressDialog(this); 
progress.setTitle("Please Wait!!"); 
progress.setMessage("Wait!!"); 
progress.setCancelable(true); 
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
progress.show(); 

调用这个代码,你想显示ProgressBar

+3

我不downvoting你,但使用progress.setCancelable(false);真是个坏主意。 – 2013-04-23 06:35:28

+0

@Vipul Shah你能告诉我如何显示这个加载屏幕按钮点击简单。 – user2306156 2013-04-23 09:22:41

0

看到这个Android 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; 

    } 

} 
+0

我不需要一个进度酒吧我需要加载屏幕谢谢 – user2306156 2013-04-23 09:17:38

0

另一种选择是使用漂亮Spezi-Views,它包含了ProgressButton这是很容易使用:

<de.halfreal.spezi.views.ProgressButton 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Press me" 
     app:selectedText="I am loaded" 
     app:unselectedText="Press me again" 
     app:loadingDrawable="@drawable/spinner" 
     /> 

,并在代码:

... 
//show a rotation spinner, and no text (or the loading text) 
progressButton.enableLoadingState(); 

//show no animation, but the selected/ unselected text 
progressButton.disableLoadingState(); 
... 
4

还有就是要展现一个更加方法ProgressBar按钮单击。

把这个代码在XML

<ProgressBar 
    android:id="@+id/progressBar1" 
    style="?android:attr/progressBarStyleLarge" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:visibility="invisible" /> 

和只写以下在Java文件你的按钮上单击代码。

progressBar.setVisibility(View.VISIBLE); 

它会显示按钮单击进度条。

2

我相信user2306156现在不需要这个了,希望有人找这个会很高兴知道我的猜测。

把这个代码在XML

<ProgressBar 
     style="@android:style/Widget.Material.Light.ProgressBar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/checkBox" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="57dp" 
     android:id="@+id/progressBar" /> 

把这个在您的活动代码

spinner=(ProgressBar)findViewById(R.id.progressBar); 
     spinner.setVisibility(View.GONE); 

,这在你的onClick活动代码的

spinner.setVisibility(View.VISIBLE);