Java android中的进度条更新

Java android中的进度条更新,java,android,android-progressbar,Java,Android,Android Progressbar,我正在开发一个android应用程序。在垂直进度条上工作。当我添加新项目时,该项目与某个百分比值关联,例如30%。进度条需要从0%更新到30%。如果我添加另一个百分比值为40%的项目,则进度条需要从30%更新到70%(30+40)我该怎么做。示例代码将很有帮助。我已经把代码贴在这里了 public class VerticalProgressBar extends Activity { Button buttonStart; ProgressBar vProgressBar; @Overri

我正在开发一个android应用程序。在垂直进度条上工作。
当我添加新项目时,该项目与某个百分比值关联,例如30%。
进度条需要从0%更新到30%。如果我添加另一个百分比值为40%的项目,则进度条需要
从30%更新到70%(30+40)

我该怎么做。示例代码将很有帮助。我已经把代码贴在这里了

public class VerticalProgressBar extends Activity {

Button buttonStart;
ProgressBar vProgressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.verticalprogressbar);
    buttonStart = (Button) findViewById(R.id.start);
    vProgressBar = (ProgressBar) findViewById(R.id.vprogressbar);

    buttonStart.setOnClickListener(new Button.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            buttonStart.setClickable(false);
            new asyncTaskUpdateProgress().execute();
        }
    });

}

public class asyncTaskUpdateProgress extends AsyncTask<Void, Integer, Void> {

    int progress;

    @Override
    protected void onPostExecute(Void result) {
        // TODO Auto-generated method stub
        buttonStart.setClickable(true);

    }

    @Override
    protected void onPreExecute() {
        // TODO Auto-generated method stub
        progress = 0;
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        // TODO Auto-generated method stub
        vProgressBar.setProgress(values[0]);
    }

    @Override
    protected Void doInBackground(Void... arg0) {
        // TODO Auto-generated method stub
        while (progress < 100) {

            progress++;
            publishProgress(progress);
            SystemClock.sleep(100);

        }
        return null;

      }

    }

  }
公共类VerticalProgressBar扩展活动{
按钮启动;
ProgressBar vProgressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.verticalprogressbar);
buttonStart=(按钮)findViewById(R.id.start);
vProgressBar=(ProgressBar)findViewById(R.id.vProgressBar);
buttonStart.setOnClickListener(新建Button.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
按钮开始。可点击设置(错误);
新建asyncTaskUpdateProgress().execute();
}
});
}
公共类asyncTaskUpdateProgress扩展了AsyncTask{
智力进步;
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
按钮开始。可点击设置(真);
}
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
进度=0;
}
@凌驾
受保护的void onProgressUpdate(整型…值){
//TODO自动生成的方法存根
vProgressBar.setProgress(值[0]);
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//TODO自动生成的方法存根
而(进度<100){
进步++;
出版进度(progress);
系统时钟。睡眠(100);
}
返回null;
}
}
}

onProgressUpdate
中,使用此选项将值添加到当前进度中:

vProgressBar.setProgress(vProgressBar.getProgress() + values[0]);
doInBackground
中,您可能有您的“物品”,类似于:

publishProgress(item.getPercentageValue());

我很抱歉。我知道你的第一行密码。但不确定这里的“项目”是什么以及它是如何工作的?谢谢。我猜到了,真的,因为它不在你的代码中。。。但是您提到您想“添加另一个具有百分比值的项目”,所以我的意思是百分比值就是您要传递给
publishProgress