我有一个按钮,它可以通过 onclick 读取并向用户显示一个包含 rss 新闻的列表。我想添加一个进度条,直到完成加载。我的问题是,如果我添加一个栏,一开始它会正常工作,但如果我按下后退按钮,该栏会再次启动并且无法停止。任何帮助或演示进度条的教程将不胜感激。谢谢!
ProgressBar myProgressBar;
int myProgress = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main1);
Button nea = (Button) findViewById(R.id.nea);
nea.setOnClickListener(new View.OnClickListener() {
public void onClick (View view) {
setContentView(R.layout.bar);
myProgressBar=(ProgressBar)findViewById(R.id.bar);
new Thread(myThread).start();
Intent myIntent = new Intent(view.getContext(), nea.class);
startActivityForResult(myIntent, 0);
}
});
}
private Runnable myThread = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
while (myProgress<100){
try{
myHandle.sendMessage(myHandle.obtainMessage());
Thread.sleep(1000);
}
catch(Throwable t){
}
}
}
Handler myHandle = new Handler(){
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
myProgress++;
myProgressBar.setProgress(myProgress);
}
};
};
最佳答案
实际上我会用 AsyncTask
来实现它,在 onPreExecute()
中启动进度条,在 onPostExecute()
中取消它> 并在 doInBackground()
中进行下载。如果你想更新进度值,你可以从 doInBackground()
中 publishProgress()
,然后可以在 onProgressUpdate()
中的 ProgressBar 上更新它>
https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L328
显示了一个 AsyncTask 示例如何使用这些方法并显示/隐藏进度条(pg
变量)
关于android - 进度条问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4863595/