Android开发:seekbar倒计时!

时间:2010-11-09 21:01:04

标签: android

是否有可能,如果是的话,如何在没有用户做任何事情的情况下从进度100转到1。

喜欢每个.05sec的seekbar.setProgress( - = 1) 因此,如果没有用户执行任何操作,搜索栏将一直向下,直到达到1。

请告诉他们如何做到这一点

感谢您

3 个答案:

答案 0 :(得分:1)

class Async extends AsyncTask<Void, Integer, Void>{

    ProgressDialog dialog;

    public Async(Context ctx) {
        dialog = new ProgressDialog(ctx);
        dialog.show();
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // TODO Auto-generated method stub

        dialog.incrementProgressBy(1);

    super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(Void result) {
    // TODO Auto-generated method stub
    dialog.dismiss();
    super.onPostExecute(result);
}


@Override
protected Void doInBackground(Void... params) {
    // TODO Auto-generated method stub
    int i=0;
    while (i < 1000) {

        publishProgress(1);
        i++;
    }
    return null;
}
}

答案 1 :(得分:0)

大致类似的东西(注意:可能无法编译):

private int progressStatus = 100;

new Thread(new Runnable() 
        {
            public void run() 
            {
                while (progressStatus > 1) 
                {
                    progressStatus = doSomeWork();

                    //---Update the progress bar---
                    handler.post(new Runnable() 
                    {
                        public void run() {
                            progressBar.setProgress(progressStatus);
                        }
                    });
                }

                handler.post(new Runnable() 
                {
                    public void run() {
                        // Do your thing here when it's done
                    }
                });
            }    

            private int doSomeWork() 
            {
                try 
                {
                    //---simulate doing some work---
                    Thread.sleep(50);

                } catch (InterruptedException e) 
                {
                   e.printStackTrace();
                }

                int progress = progressStatus - 1;

                return progress;
            }

        }).start();  

答案 2 :(得分:0)

您可能被迫编写自己的进度条。这是一个例子:http://techdroid.kbeanie.com/2010/04/custom-progressbar-for-android.html

有多种方法可以做到这一点......