-1

当我单击按钮时,它会等待 20 秒,然后将文本显示为文本视图,我的要求是 1 秒后,进度条必须增加 5 个值。任何人都可以指导我使用以下代码

public class ProgressBar1 extends  Activity{

    TextView tvpbview;
    ProgressDialog pd1;
    ProgressBar pbhr1;
    Button btnhp1;
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.progressbar1);


        btnhp1 = (Button) findViewById(R.id.btnProgress);
        pbhr1 = (ProgressBar) findViewById(R.id.pbHori1);
        pbhr1.setMax(100);


    btnhp1.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {

                //--- For Horizontal Progress Bar------

                for(int i=0;i<=20;i++)
                {
                     pbhr1.incrementProgressBy(5);
                    tvpbview.setText(""+pbhr1.getProgress()+"% done");
                    try {
                        Thread.sleep(1000);


                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }


                }
            }
        });
4

3 回答 3

1

您的方法不正确,您需要使用正确的线程形式。特别是对于您的情况,我建议您使用以下内容:

很可能您需要阅读一些教程,因此请查看


注意: AsyncTask比泛型更复杂Handler,也是泛型,专为更新UI而设计。

于 2012-07-20T16:26:25.983 回答
0

创建一个异步任务。为此,Android 提供了 AsyncTask 类。您在 UI 线程上创建一个进度条,然后调用 publishProgress() 方法来更新您的进度条。它使用起来非常简单,文档非常好。

于 2012-07-20T16:17:36.410 回答
0

尝试这个

在最初设置它们之后,如果要更改值,则需要在两者之间将其设置为零:

ProgressBar dataProgressBar = (ProgressBar) findViewById(R.id.progressBarData);

    //set to 0 first to stop the bug from happening

    dataProgressBar.setMax(0);
    dataProgressBar.setProgress(0);

    //set your new values

    dataProgressBar.setMax((int) dataAllowanceValue);
    dataProgressBar.setProgress((int) dataMBytes);
于 2012-07-20T16:26:16.230 回答