我在项目的界面上有个ProgressBar控件,我点击了一个按钮去做了个耗时的操作(用的是Thread对象去做的)的时候就将ProgressBar显示出来,第一次出来是正常的转动,耗时操作完成后就隐藏起来了,第二次做同样的操作的时候出问题了,它能显示出来,但是就是不转,一直卡在那里,操作还是能正常完成的,为什么第二次出来就不转了呢?
如果我想让它再次转动起来需要怎样做?
在线等,有答案马上就结贴了,谢谢各位了。

解决方案 »

  1.   

    代码如下,我就是点击按钮后执行一个线程操作,第一次正常,执行完后第二次就不转了,请帮忙看看是哪里需要怎样设置吗?谢谢了Thread t=new Thread(new Runnable() {
    @Override
    public void run() {
    try{
    Thread.sleep(3000);
    }catch (Exception e) {}
    h.post(new updateRunnable());
    }
    });
    t.start();
    //---
    private class updateRunnable implements Runnable{
    @Override
    public void run() {
    updateUI();
    }};
    //--
    public void updateUI(){
    try{
    List<Map<String, String>> list = getSourse();
    list.addAll(getSourse2());
    sa = new SimpleAdapter(Mian.this, list, R.layout.main_list_item,
    new String[] { "title" },new int[] { R.id.main_list_item_lab_title });
    main_list.setAdapter(sa);
    sa.notifyDataSetChanged();
    }catch (Exception e) {}
    }
      

  2.   

    你还用了两个run啊,这里也没有ProgressBar的定义啊,你还不如用横杠从0-100的那样
      

  3.   

    ProgressBar是定义到XML文件里面的,就是个定死了的。在执行耗时操作的是否就显示出来而已,这里我是更新界面上的LISTVIEW,不用两个RUN会报错吧。
      

  4.   

    我用两个Run只是在第一个Run中线程暂停一下模拟耗时操作而已。
      

  5.   

    第一次掉用完毕后把progressDialog清空。第二次重新new 一个