2014-01-12 23 views
0
package com.example.progressdialog; 

import com.example.progressdialog.R; 

import android.os.Bundle; 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.view.Menu; 
import android.view.View; 

public class MainActivity extends Activity { 

    private ProgressDialog progress; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     progress = new ProgressDialog(this); 
    } 


    public void open(View view){ 
     progress.setMessage("Start This Baby Up!"); 
     progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
     progress.setIndeterminate(false); 
     progress.show(); 

    final int totalProgressTime = 100; 

    final Thread t = new Thread(){ 

    @Override 
    public void run(){ 

     int jumpTime = 0; 
     while(jumpTime < totalProgressTime){ 
     try { 
      sleep(500); 
      jumpTime += 1; 
      progress.setProgress(0); 
     } catch (InterruptedException e) { 


      e.printStackTrace(); 
     } 

     } 

    } 
    }; 
    t.start(); 

    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

我似乎無法讓我的進度條實際前進。它只是顯示一個靜態0/100欄。我試圖讓它以平穩的方式前進大約30-45秒完成。有人能告訴我我做錯了什麼嗎?我對Java很陌生!謝謝!爲什麼我的進度欄無法使用?

回答

1

引文:

progress.setProgress(0); 

這應該是

progress.setProgress(jumpTime); 

我想?

另外我想這會導致一個問題。您無法從後臺線程訪問UI組件。你需要使用一個Handler。看到這個Example

+0

既然你是新來的,請考慮設置這個答案作爲解決方案,所以其他社區成員知道,他們不必看這個問題。 –

相關問題