Android 进度条问题

Android 进度条问题,android,progressdialog,Android,Progressdialog,我有一个按钮,onclick读取并向用户显示带有rss新闻的列表。我想添加一个进度条,直到完成加载。我的问题是,如果我添加一个条,它一开始工作正常,但如果我按下后退按钮,条会再次启动,并且无法停止。如果您能提供任何帮助或教程来演示progressbar,我们将不胜感激。谢谢 ProgressBar myProgressBar; int myProgress = 0; /** Called when the activity is first created. */ @Override

我有一个按钮,onclick读取并向用户显示带有rss新闻的列表。我想添加一个进度条,直到完成加载。我的问题是,如果我添加一个条,它一开始工作正常,但如果我按下后退按钮,条会再次启动,并且无法停止。如果您能提供任何帮助或教程来演示progressbar,我们将不胜感激。谢谢

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);
     }
    };
      };
ProgressBar-myProgressBar;
int myProgress=0;
/**在首次创建活动时调用*/
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.main1);
按钮nea=(按钮)findViewById(R.id.nea);
nea.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
setContentView(R.layout.bar);
myProgressBar=(ProgressBar)findViewById(R.id.bar);
新线程(myThread.start();
Intent myIntent=newintent(view.getContext(),nea.class);
startActivityForResult(myIntent,0);
}  
});
}
private Runnable myThread=new Runnable(){
@凌驾
公开募捐{
//TODO自动生成的方法存根

而(myProgress问题在于您没有还原myProgress变量。请在onCreate()的开头将其设置为0:

@覆盖
创建公共空间(捆绑冰柱){
超级冰柱;
setContentView(R.layout.main1);

myProgress=0;//实际上,我会通过一个
异步任务来实现这一点,在
onPreExecute()
中启动进度条,在
onPostExecute()
中取消它,并在
doInBackground()
中进行下载。如果要更新进度值,可以
publishProgress()
from
doInBackground()
然后可以在
onProgressUpdate()中的进度栏上更新它


显示使用这些方法并显示/隐藏进度条(
pg
变量)的异步任务示例。

您的代码看起来不像您希望的那样工作。您希望在此活动和下一个活动之间显示进度条(我的假设)。根据您的代码现在的工作方式,当前活动似乎将启动一个线程,该线程将显示一个进度条约100秒,但同时您正在加载第二个活动。因此,如果在100秒结束之前,单击“上一步”按钮,您将返回到原始活动,该活动仍显示t他在进步吧

一般来说,我不认为在活动之间需要进度条,因为它们之间的交换应该非常顺利。我通常会在活动完全呈现之前使用进度条加载数据

也许您应该看看ProgressBar上的一些Android文档:


请显示一些代码,没有它很难说什么。当数据存储完成时删除进度条。您试图用进度条做什么?您当前的实现似乎什么都没做。我希望在加载rss之前有一个进度条,然后关闭进度条,这样当用户返回主s时屏幕上有我的按钮,我不想看到条形图..ProgressBar myProgressBar=0;?你能帮我介绍一下你的异步任务示例吗..试着实现,当你遇到问题时,再问另一个问题。更新我的答案以链接到一个示例。你能不能把你的答案弄得更具体一些…我是android开发人员中的新手,对此我感到困惑大教程…无论如何,谢谢你的尝试!我在这里也有同样的问题,我在启动线程之前使用了一个不确定的进度条,最后我转到另一个活动,如果线程仍在做某事,它仍然显示进度条,最后它确实在第二个活动上停止,但如果我返回,进度条仍然显示s、 …我使用静态方法获取和设置进度条状态…我还尝试更改onResume中的进度条状态,当您按下“后退”按钮时启动,但它仍然显示进度条旋转…:S@Maxrunner:如果你有问题,你应该问一个新问题。
@Override
 public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.main1);
  myProgress = 0; // <--- notice that statement.
  ...
 }